如何更改 UIScrollView 的位置和大小?

Posted

技术标签:

【中文标题】如何更改 UIScrollView 的位置和大小?【英文标题】:How to change the position and size of a UIScrollView? 【发布时间】:2015-06-25 18:14:02 【问题描述】:

我对 AutoLayout 感到沮丧,所以我决定禁用它,并以编程方式设置视图中元素的位置和大小。我试过这个:

func setScrollViewBounds() 
    var windowFrame = self.view.frame;

    var scrollerHeigth = (windowFrame.height/100)*15

    BottomScroll.frame = CGRect(x: CGFloat(10), y: windowFrame.height-scrollerHeigth, width: windowFrame.width-20, height: scrollerHeigth);
    TopScroll.frame = CGRect(x: CGFloat(10), y: BottomScroll.frame.maxY-10, width: windowFrame.width-20, height: scrollerHeigth)

我正在尝试将两个滚动视图(TopScrollBottomScroll)设置在页面底部,并让一个在另一个之上。然而,这似乎并没有做任何事情。任何想法为什么?

我正在调用ViewDidLoad() 中的函数。 TopScrollBottomScroll 是 IBOutlets。

【问题讨论】:

【参考方案1】:

按顺序应用约束

将您的子视图放在 UIView 对象中(哪个将成为 ScrollView 的子视图)。

同时选择 ScrollView 和 UIView

Go->Pin->等宽。(不等高)

选择 UIScrollView Go-> Pin 取消选中 Constraint to Margin 并给出 Top,Bottom,Left,Right 约束。

现在选择 UIView(UIScrollview 的子视图说 contentView) 控件单击 contentView 到主视图(默认控制器的视图)并选择前导、尾随、顶部、底部约束。

最后选择 contentView Go-> 解决 Auto-layOut 问题 -> 重置为建议的约束。

ContentView 子视图的约束与 contentView 一样。使用 viewDidLayoutSubview 将 content-size 设置为 UIScrollView。

【讨论】:

以上是关于如何更改 UIScrollView 的位置和大小?的主要内容,如果未能解决你的问题,请参考以下文章

更改 UIScrollView 内容大小

我想在iOS7的UI Scroll View中更改按位置绑定的大小[关闭]

如何动态调整 UIScrollView 的大小?

UIScrollView 在方向更改时没有获得新的大小

在自动布局中动态更改 UIScrollView 的大小

iOS - 更改 UIScrollView 的大小后 ContentOffset 保持不变