neh*_*eha 7 iphone uiscrollview
我有一个scrollview作为tableview单元格的详细视图.我正在通过界面构建器创建标签,按钮等详细视图上有多个视图.我通过界面构建器创建的是静态的.我把所有东西放在高度480的视图上.
我的详细视图上的标签是动态文本,可以扩展到任何长度.问题是我需要设置我需要其高度的scrollview的内容大小.
如果内容是动态的,我该如何设置scrollview的高度?
小智 20
您可以尝试使用scrollview'ers ContentSize.它对我有用,我使用动态内容的控件也有同样的问题.
// Calculate scroll view size
float sizeOfContent = 0;
int i;
for (i = 0; i < [myScrollView.subviews count]; i++) {
UIView *view =[myScrollView.subviews objectAtIndex:i];
sizeOfContent += view.frame.size.height;
}
// Set content size for scroll view
myScrollView.contentSize = CGSizeMake(myScrollView.frame.size.width, sizeOfContent);
Run Code Online (Sandbox Code Playgroud)
我在控制器中的viewWillAppear方法中为保存scrollview的视图执行此操作.这是我在super上调用viewDidLoad之前做的最后一件事.
希望它能解决你的问题.
//汉纳斯
纠正较短的例子:
float hgt=0; for (UIView *view in scrollView1.subviews) hgt+=view.frame.size.height;
[scrollView1 setContentSize:CGSizeMake(scrollView1.frame.size.width,hgt)];
Run Code Online (Sandbox Code Playgroud)
请注意,这只是高度的总和,例如,如果两个子视图并排高度并且两者都被添加,使得总和大于它应该是的.此外,如果子视图之间存在垂直间隙,则总和将小于应有的值.错误的高度混淆scrollRectToVisible,给出随机滚动位置:)
这个循环正在运行和测试:
float thisy,maxy=0;for (UIView *view in scrollView1.subviews) {
thisy=view.frame.origin.y+view.frame.size.height; maxy=(thisy>maxy) ? thisy : maxy;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21617 次 |
| 最近记录: |