Mar*_*ark 125 iphone uiscrollview ipad ios
我有一个UIScrollView包含许多UIImageViews,UILabels等...标签比它长得多UIScrollView,但是当我运行应用程序时,我无法点击并向下滚动...
为什么会这样?
谢谢
Bog*_*tyr 166
显示完整的工作代码片段总是很好:
// in viewDidLoad (if using Autolayout check note below):
UIScrollView *myScrollView;
UIView *contentView;
// scrollview won't scroll unless content size explicitly set
[myScrollView addSubview:contentView];//if the contentView is not already inside your scrollview in your xib/StoryBoard doc
myScrollView.contentSize = contentView.frame.size; //sets ScrollView content size
Run Code Online (Sandbox Code Playgroud)
Swift 4.0
let myScrollView
let contentView
// scrollview won't scroll unless content size explicitly set
myScrollView.addSubview(contentView)//if the contentView is not already inside your scrollview in your xib/StoryBoard doc
myScrollView.contentSize = contentView.frame.size //sets ScrollView content size
Run Code Online (Sandbox Code Playgroud)
我还没有找到在IB中设置contentSize的方法(从Xcode 5.0开始).
注意:如果您使用的是Autolayout,那么将此代码放在-(void)viewDidLayoutSubviews方法中的最佳位置.
use*_*652 119
如果在正确设置contentSize后仍无法滚动视图,请确保在Interface Builder - > File Inspector中取消选中 "Use AutoLayout".
Chr*_*lli 67
您需要设置contentSize滚动视图的属性才能正确滚动.
如果您使用自动布局,你需要设置contentSize的viewDidLayoutSubviews,以便它的自动布局完成后应用.
代码可能如下所示:
-(void)viewDidLayoutSubviews
{
// The scrollview needs to know the content size for it to work correctly
self.scrollView.contentSize = CGSizeMake(
self.scrollContent.frame.size.width,
self.scrollContent.frame.size.height + 300
);
}
Run Code Online (Sandbox Code Playgroud)
Jas*_*ues 45
上面的答案是正确的 - 要使滚动发生,有必要设置内容大小.
如果您正在使用界面构建器,那么使用用户定义的运行时属性可以采用一种简洁的方法.例如:

wzb*_*zon 39
尝试将内容大小调整为大量.我无法理解为什么我的滚动视图即使其内容大小似乎大于控件大小也不会滚动.我发现如果内容大小小于需要,它也不起作用.
self.scrollView.contentSize = CGSizeMake(2000, 2000);
Run Code Online (Sandbox Code Playgroud)
而不是2000你可以把自己的大数字.如果它有效,则意味着当您调整大小时,您的内容大小不够大.
滚动视图无需委托即可工作.
就我而言,我必须设置delaysContentTouches为 true,因为 scrollView 内的对象都在捕获触摸事件并自行处理,而不是让 scrollView 本身处理它。
设置in方法的contentSize属性。像这样的东西UIScrollviewViewDidLayoutSubviews
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
scrollView.contentSize = CGSizeMake(view.frame.size.width, view.frame.size.height)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
116873 次 |
| 最近记录: |