簡體   English   中英

更改其寬度約束時,UIScrollView contentOffset會更改

[英]UIScrollView contentOffset changes when its width constraint is changed

我有一個UIScrollView其寬度由約束設置。 我隨視圖的更改(在本示例中,當界面方向更改時)修改此約束的常量。

- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];

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

不幸的是,當該值更改時,我注意到滾動視圖的內容偏移也更改了(更改為一個值,我無法注意到模式)。 如果常數永遠不變,就不會有不規則現象。

有辦法解決這個問題嗎?

因為您已經為滾動視圖設置了約束,所以現在如果您更改其寬度,那么其他約束也會影響並嘗試滿足。 例如,視圖的約束距離到兩側的距離為5,如果將寬度增加10,則前導約束和尾隨約束會發生沖突,因此,如果您提供寬度約束,則不要同時給出前導和尾隨,並且高度相同。 因此,在scrollview中,如果嘗試使用進行更改,則有可能更改它的位置以滿足其他約束。 這就是為什么更改內容偏移量以進行同樣的調整。

第二件事,

您不應將固定高度或寬度直接設置為scrollview。 因為它根據內容的大小滾動。 您應該根據需要將頂部,底部,前導,尾隨設置為scrollview,並為其內容視圖固定高度或長度,使其在容器中具有水平或垂直中心。

希望這會有所幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM