iOS 7 - UIScrollView subView 不显示

Posted

技术标签:

【中文标题】iOS 7 - UIScrollView subView 不显示【英文标题】:iOS 7 - UIScrollView subView not showing 【发布时间】:2014-02-10 07:51:24 【问题描述】:

尝试将子视图添加到 UIScrollView,这是在 XIB 文件中定义的。下面的代码是我尝试在视图控制器中添加子视图的方式。但是没有添加子视图。

有什么建议吗?

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    CGRect frame = _tasksScrollView.frame;
    frame.size.width /= 3.0;

    NSArray *colors = [NSArray arrayWithObjects:[UIColor blueColor],
                                                [UIColor redColor],
                                                [UIColor yellowColor],
                                                [UIColor greenColor],
                                                [UIColor purpleColor],
                                                nil];

    for (int i = 0; i < [colors count]; i++, frame.origin.x += frame.size.width) 
        UIView *subView = [[UIView alloc] initWithFrame:frame];
        subView.backgroundColor = [colors objectAtIndex:i];

        [_tasksScrollView addSubview:subView];
    

    _tasksScrollView.contentSize = CGSizeMake(frame.size.width * [colors count], frame.size.height);

【问题讨论】:

你确定 frame.origin.y 是 0 可能是您的子视图相对于滚动视图中的视图空间偏移,因为您从 scrollview.frame 本身继承了 xy 坐标,这实际上是相对位置到全屏。尝试设置子视图的xy 位置,使其从0 开始。 感谢您的帮助!我的 UIScrollView 没有从原点 (0, 0) 开始,我将我的子视图框架的原点设置为与 UIScrollView 的原点相同,但这不起作用。将子视图的原点设置为 (0, 0) 有效。 @bohanl 很高兴你把它修好了。 【参考方案1】:

可能是您的子视图相对于滚动视图中的视图空间偏移,因为您从scrollview.frame 本身继承了xy 坐标,这实际上是相对于全屏的位置。尝试设置子视图的xy 位置,使其从0 开始。

【讨论】:

【参考方案2】:

发生这种情况的原因有几个,大多数情况下,您只是无法链接/连接 XIB 中的 IBOutlet 属性 (_tasksScrollView)。

【讨论】:

以上是关于iOS 7 - UIScrollView subView 不显示的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能在 iOS 7.0 中的 UIScrollView 中滚动?

UIScrollView 在 iOS 7 中没有滚动到底部

UIScrollView 在 iOS 7 上停止滚动

UIScrollView 框架在 iOS 8 和 iOS 7 上的大小不同

iOS 7——navigationController 正在设置我的 UIScrollView 的 contentInset 和 ContentOffset

在 iOS 7 中使用 UIScrollView 在 iOS 中创建水平滚动 UIButton