将内容添加到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。真的为此感到难过...
最佳答案
在viewDidLoad
中,您的subViews组件尚未完全初始化,因此,如果使用其中某些框架,则会得到不希望的结果。 viewDidLayoutSubviews
可能就是您想要的。这是所有子视图框架都完全初始化的方法。
尝试在此方法内调用您的代码,并且在单击按钮时应获得与结果相同的结果。
-(void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
[self setupView];
}
关于iphone - 非常奇怪的UIView位置问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18558279/