2016-04-15 63 views
0

我在故事板中使用UIScrollview并在其中应用自动布局。在UIScrollview中,我插入contentview作为UIScrollview的自动布局需要一个contentview。现在,根据我的应用场景,我必须更改contentView高度,所以编程方式我已更改contentView的自动布局。带自动布局的UIScrollView SetContentSize

现在我得到contentView的高度= 445以编程方式更改自动布局后。下面是我的代码

//----set height of content view----// 
CGRect contentViewFrame = contentView.frame; 
contentViewFrame.size.height= viewMainContent.frame.origin.y+viewMainContent.frame.size.height + 20 ; 
contentView.frame = contentViewFrame; 
_contentHtConstraint.constant = contentView.frame.size.height; 

根据这个UIScrollView的高度也是445。但是UIScrollview的contentSize将是675

有人可以说我如何管理contentSize吗?

+0

你打电话过'[self updateViewConstraints]'? – zhubch

+0

@zhubch号码..我必须打电话给我吗? – Abha

+0

在更改约束后调用它。 – zhubch

回答

0

将高度限制添加到您的内容视图。并为它设置出路。 如果您希望视图控制器启动时更改内容高度。将其设置在viewWillLayoutSubviews

- (void) viewWillLayoutSubviews{ 
     [super viewWillLayoutSubviews]; 

     //Update your content view height, by updating constant size of height constraint 
     self.contentViewHeightConstraint.constant = 1000;//set this value as per your need. 

     // update your view constraint if needed 
     [self.view updateConstraintsIfNeeded]; 

     //Set content size for your scrollview 
     [self.scrollView setContentSize:CGSizeMake(self.scrollView.contentSize.width, self.contentViewHeightConstraint.constant)]; 

} 
+0

从您的解决方案中,滚动内容大小现在可以管理,但用户的交互功能已被禁用。我无法在那里做任何事情。 – Abha

+0

Nilesh ..我没有使用默认的滚动视图。在这里我使用TPKeyboardAvoidingScrollview – Abha

+0

我刚刚在github上检查了TPKeyboardAvoidingScrollView。它的UIScrollview的子类。您也可以使用TPKeyboardAvoidingScrollView的默认滚动视图属性。检查您的滚动视图或内容视图用户交互是否启用。或者可能是任何其他视图重叠您的内容视图。检查结构的意见..希望这可能会帮助你 –