Swift UIScrollView 不滚动但响应 setContentOffset 和 Delegate 响应
Posted
技术标签:
【中文标题】Swift UIScrollView 不滚动但响应 setContentOffset 和 Delegate 响应【英文标题】:Swift UIScrollView not scrolling but responding to setContentOffset and Delegate responds 【发布时间】:2014-07-10 18:36:53 【问题描述】:在这里遇到了一个非常奇怪的事件,UIScrollView
只是拒绝滚动。我在我的 StoryBoard 中设置它并在我的ViewDidLoad
中正确设置contentSize
。我仔细检查以确保它是Scrollable
等,但它只是不工作。我设置了scrollView.setContentOffset()
,它通过一个可爱的动画滚动很好,ScrollViewDidScroll
委托被调用。那么,说了这么多,为什么它可能无法通过拖动手势滚动?
我检查过的内容:
- UserInteraction
自行启用,全部为 sub/superviews
。
- Scrollable
.
- 切换:DelaysContentTouches
和 CancellableContentTouches
。
我没有想法。目前使用Xcode 6 Beta 1
。任何帮助将不胜感激。
问候, 迈克
【问题讨论】:
【参考方案1】:由于自动布局,它不会使用拖动手势滚动。在 viewDidLoad 中,自动布局将在您定义后重置内容大小。您有两个选择:您可以禁用自动布局,或者您可以在 viewDidLayoutSubviews 中设置 contentSize。
override func viewDidLayoutSubviews()
super.viewDidLayoutSubviews()
scrollView.contentSize = CGSize(width:10, height:10)
【讨论】:
他只是走了而已。非常感谢,马上解决了问题。这应该教会我在 swift 出现之前不要使用 AutoLayout。自从它推出以来的这些年里,我从未选择过 AutoLayout,因为我认为这很麻烦。现在已经用了几个月了,真的很喜欢。我想我得边走边学所有这些小花絮。向前向上!以上是关于Swift UIScrollView 不滚动但响应 setContentOffset 和 Delegate 响应的主要内容,如果未能解决你的问题,请参考以下文章
UIScrollView 中的 Swift UITableView(不滚动)