我正在使用Storyboard
和autolayout
。在我的ViewController
中,我有一个基本结构:一个UIScrollView
和一个包含不同标签的contentView(UIView
)。然后,我有我的类的viewDidAppear
方法添加我的contentView
里面,然后以重新计算不同元素的帧尺寸我这样做:UIView帧未在视图中更新DIDAppear
- (void)fixContentViewHeight
{
_contentView.frame = CGRectMake(_contentView.frame.origin.x, _contentView.frame.origin.y, _contentView.frame.size.width, operators.frame.origin.y + operators.frame.size.height);
//constraint for contentView height
_contentViewHeight.constant = operators.frame.origin.y + operators.frame.size.height;
}
- (void)fixScrollViewHeight
{
_scrollView.frame = _contentView.frame;
_scrollView.contentSize = _contentView.frame.size;
}
其中operators
是contentView
最后放置的元素,它总是在框架的底部。我将这两种方法称为viewDidAppear
,它们使视图可滚动,问题在于contentView
的框架没有更新,因此最后一个元素始终是不可点击的(因为它们放置在视图框架之外)。
我在做什么错?为什么scrollView
变得可滚动,但contentView
保持它的旧框架?
你使用自动布局吗? – Miknash
@NickCatib是的我正在使用自动布局 – Signo