2016-04-18 10 views
0

UIScrollViewの幅が制約によって設定されています。ビューの変更(この例では、インターフェイスの向きが変更されたとき)として、この制約の定数を変更します。残念ながらUIScrollViewのcontentOffsetは、幅の制約が変更されたときに変更されます。

- (void)viewWillLayoutSubviews 
{ 
    [super viewWillLayoutSubviews]; 

    self.scrollViewWidthConstraint.constant = self.view.width; 
} 

、私はスクロールビューのコンテンツはまた、(私はへのパターンに気づくことができない値に)変更するオフセットことがわかり、この値が変化します。定数が決して変化しない場合、不規則性はありません。

これを回避する方法はありますか?

+0

これは期待できませんか?ビューの内容がより大きい/小さい幅に合わせて調整されている場合は、同じ内容が画面に表示されるようにコンテンツのオフセットを調整する必要があります。コンテンツのオフセットが変更されず、ビューにUITextViewなどが表示されている場合、表示されるテキストは別の位置にジャンプします。 – dirkgroten

答えて

0

スクロールビューに制約を設定しているので、今度は幅を変更すると他の制約も影響を受けて満足するようになります。たとえば、ビューにはすべての辺からの距離が5の制約があります。幅を10ずつ増やすと、先頭と末尾の拘束が矛盾するので、幅の制約を指定すると、高さに先頭と末尾の両方を指定しないでください。したがって、スクロールビューで変更しようとすると、他の制約を満たす位置が変更される可能性があります。そのためコンテンツのオフセットが同様に調整されるように変更されています。

第2のもの

スクロールビューに直接固定高さまたは幅を設定しないでください。コンテンツのサイズに応じてスクロールするためです。スクロールビューに上端、下端、下端を設定し、必要に応じてコンテナ内の水平または垂直の中心を持つコンテンツビューに固定高さまたは長さを指定する必要があります。

これが役に立ちます。

関連する問題