【问题标题】:iOS 7 - UIScrollView subView not showingiOS 7 - UIScrollView subView 不显示
【发布时间】: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 很高兴你把它修好了。

标签: ios iphone uiview uiscrollview


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 2019-04-21
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多