2016-04-15 7 views
0

私はストーリーボードでUIScrollviewをとり、autolayoutを適用しています。 UIScrollviewの内部では、contentviewを挿入しています.UIScrollviewのautolayoutにはcontentviewが1つ必要です。さて、私のアプリケーションのシナリオごとに、contentViewの高さを変更しなければならないので、プログラムで私はcontentViewの自動レイアウトを変更しました。autolayoutを使ったUIScrollView SetContentSize

ここで、プログラムによってautolayoutを変更した後、contentViewのheight = 445を取得しました。以下は、私のコードは、このUIScrollViewのの高さに応じて

//----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; 

も445されています。しかし、UIScrollviewのcontentSizeは675になります。

誰でも私にcontentSizeの管理方法を教えてもらえますか?

+0

あなたは '[self updateViewConstraints]'を呼び出しましたか? – zhubch

+0

@zhubch No.。これはどこで呼びますか? – 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のデフォルトスクロールビュープロパティも使用できます。スクロールビューまたはコンテンツビューを確認するユーザーの操作が有効かどうか。他のビューがコンテンツビューと重なっている可能性があります。 Viewsの構造をチェックしてください。 –

関連する問題