Moh*_*din 33 uiscrollview ios swift xcode6
我的UIScrollView不会向下滚动.我不知道为什么.我已经关注了有关此问题的Apple文档.
@IBOutlet weak var scroller: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func viewDidLayoutSubviews() {
scroller.scrollEnabled = true
// Do any additional setup after loading the view
scroller.contentSize = CGSizeMake(400, 2300)
}
Run Code Online (Sandbox Code Playgroud)
请指教.谢谢.
Chr*_*örz 42
你需要设置frame
你的UIScrollView
,使它小于contentsize
.否则,它不会滚动.
此外,我建议您添加scroller.contentSize = CGSizeMake(400, 2300)
到您的viewDidLoad
方法.
小智 21
很多时候代码是正确的,如果你已经按照教程,但许多初学者不知道是scrollView不会正常滚动模拟器.只有当您按下鼠标垫并同时滚动时才会滚动.许多有经验的XCode/Swift/Obj-C用户非常习惯这样做,所以他们不知道初学者可能会忽视它.再见 :-)
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(scrollView)
// Do any additional setup after the view
}
override func viewWillLayoutSubviews(){
super.viewWillLayoutSubviews()
scrollView.contentSize = CGSize(width: 375, height: 800)
}
Run Code Online (Sandbox Code Playgroud)
只要您执行我上面所说的操作,此代码就可以正常工作
Fan*_*ing 10
Swift 3.0版
scroller.contentSize = CGSize(width: scroller.contentSize.width, height: 2000)
Run Code Online (Sandbox Code Playgroud)
如果您使用自动版式,
在viewdidAppear中设置内容大小适合我的。
覆盖func viewDidAppear(_动画:布尔){
scrollView.contentSize = CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height+300)
}
Run Code Online (Sandbox Code Playgroud)
小智 8
如果您正在使用Storyboard
:
UIScrollView
top
、bottom
、left
和约束right
heights
和widths
约束Equal Heights Constraint
优先级设置为250
。对于水平滚动,将Equal Widths Constraint
优先级设置为250
小智 5
如果使用自动布局,则contentSize属性将停止工作,它将尝试从约束条件推断出内容大小。如果真是这样,那么您的问题可能是您没有为内容视图定义必要的约束,以便滚动视图可以推断内容的大小。您应该在滚动视图的顶部和底部边缘定义内容视图的约束。
就我而言,我在 UIScrollView 中使用了 UIStackView。
添加了一些从代码到 stackview 的视图元素。它不会滚动。
通过将 stackview 设置为userInteractionEnabled
来修复它false
。
不要给滚动视图固定高度,而总是将第一个子视图的顶部赋予scrollview,将最后一个子视图的底部赋予scrollview。通过这种方式,滚动视图将根据所包含子视图的大小自动增长。无需为滚动视图提供contentSize,无论大小iPhone均可使用。
归档时间: |
|
查看次数: |
59848 次 |
最近记录: |