【问题标题】:Learning the basics of UIScrollView学习 UIScrollView 的基础知识
【发布时间】:2010-12-08 09:34:52
【问题描述】:

我一直很难找到 UIScrollView 的好例子。即使是 Apple 的 UIScrollView Suite 我也觉得有些欠缺。

我正在寻找一个教程或示例集,向我展示如何在您从一个浏览器窗口缩小并可以轻拂到其他浏览器窗口时创建类似于 iPhone Safari 选项卡滚动的内容。

但我很难在滚动视图中显示任何旧视图。我有一个视图,其中包含一个图像,但是当我将它添加到滚动视图时,无论我在视图中添加什么,我都只会得到一个黑色矩形。

任何链接或代码 sn-ps 都会很棒!

【问题讨论】:

  • 你能解释一下你所说的 iPhone Safari 标签滚动是什么意思吗?是不是在你点击页面右下角的按钮之后你会得到一个 UIPageControl 让你可以轻弹到其他浏览器窗口?

标签: iphone objective-c iphone-sdk-3.0 uiscrollview


【解决方案1】:

这是scroll view guide from Apple

基本步骤是:

  1. 创建一个UIScrollView 和一个您想要放入其中的内容视图(在您的情况下为UIImageView)。
  2. 使内容视图成为滚动视图的子视图。
  3. 将滚动视图的内容大小设置为内容视图的框架大小。 这是人们经常忽略的一个非常重要的步骤。
  4. 将滚动视图放在窗口中的某个位置。

至于分页行为,请查看 UIScrollView 的 pagingEnabled 属性。如果您需要滚动不到一整页,则需要与clipsToBounds 玩技巧,这与this StackOverflow question 中发生的情况正好相反。

【讨论】:

  • 编辑:在这里找到我的问题:stackoverflow.com/questions/1135163/… - 遗憾的是答案是“不,Apple 忘记启用它”。原始评论:有没有办法从 Interface Builder 中执行上述第 3 步?我一直在用代码做,无法在 IB 中找到方法。这很奇怪——基本上,如果你想让 UIScrollView 真正工作,Apple 似乎会强迫你编写代码?
  • 快速说明:该示例的链接不再有效,现在正在重定向到各种垃圾邮件站点。
  • 第 3 步:要设置内容大小,请将 [self.scrollView setContentSize:CGSizeMake(contentView width,contentView height)]; 添加到 viewDidAppear 方法中。
  • 您可以在 Interface Builder 中使用“用户定义的运行时属性”来执行此操作。 Key Path 是'contentSize',类型是'Size'。如果您不使用视图控制器,则无需使用 IBOutlet。
【解决方案2】:
UIScrollView *scrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

NSInteger viewcount= 4; 
for (int i = 0; i <viewcount; i++) 
{ 
CGFloat y = i * self.view.frame.size.height; 
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, y,self.view.frame.size.width, self .view.frame.size.height)];      
view.backgroundColor = [UIColor greenColor]; 
[scrollview addSubview:view]; 
[view release]; 
}
scrollview.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height *viewcount); 

更多信息Create UIScrollView programmatically

【讨论】:

  • "CGFloat y = i * self.view.frame.size.height;"为所有迭代给出 0。
【解决方案3】:

2013 年 3 月 26 日新 我偶然发现了一种更简单的方法,无需代码 (contentSize)

https://stackoverflow.com/a/15649607/1705353

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多