【发布时间】:2013-09-01 12:06:58
【问题描述】:
在向 UIScrollView 添加内容时,我遇到了一个奇怪的问题。
以下是调用相同方法的结果。左边的那个是从 viewDidLoad 调用的结果。右边的那个是从一个自定义方法调用的,该方法在触摸标签时触发。
代码非常简单:
CGRect scrollRect = CGRectMake(0, 64, 320, [[UIScreen mainScreen] bounds].size.height - 49);
_containerView = [[UIScrollView alloc] initWithFrame:scrollRect];
_containerView.backgroundColor = [UIColor clearColor];
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 5, 300, 40)];
myLabel.text = @"my label";
myLabel.textColor = [super colorFromHexString:0x472C37];
myLabel.numberOfLines = 0;
[myLabel sizeToFit];
y_offset += myLabel.frame.size.height;
[_containerView addSubview:myLabel];
[self.view addSubView:_containerView];
我检查了父级 (self.view),它的坐标始终为 0,0。真的被这个给难住了……
【问题讨论】:
-
很可能是未指定的自动布局约束的结果。
-
在
viewWillAppear:或viewDidLayoutSubviews中使用此代码吗? -
@DavidH 不,不使用自动布局。
标签: iphone ios objective-c uiview uiscrollview