【问题标题】:how to add a uiscrollview in IB如何在 IB 中添加 uiscrollview
【发布时间】:2010-10-13 19:52:59
【问题描述】:

如何仅使用界面生成器而不使用代码来添加要在 uiscrollview 中设置的图像。我尝试简单地将图像添加到滚动视图中,但它没有用。我知道这是一个非常简单的答案,但是我没有找到任何与 IB 相关的帮助来实现这一目标

【问题讨论】:

    标签: iphone interface-builder uiscrollview


    【解决方案1】:

    您可以在 Interface Builder 中将图像添加到滚动视图,但为了使其滚动(即使图像大于滚动视图),您需要在代码中手动设置滚动视图的 contentSize 属性,因为我我不知道在 Interface Builder 中设置此属性的任何方法。在视图控制器的 viewDidLoad 方法中,您可以添加如下内容:

    scrollView.contentSize = imageView.frame.size;
    

    只有一行代码,应该不会太麻烦。

    【讨论】:

    • 我只想补充一点,contentSize 需要比您在 IB 中定义的 UIScrollView 的帧大小更大。否则,所有内容都将在可见框架中,并且不会启用滚动。
    • 感谢我使用它,但我不会在标题和 .m 文件中添加我的滚动视图以使您的代码行正常工作。生病试试这个我虽然可能有一种自动执行此操作的 ib 方式谢谢:)
    • self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 660); // 添加任意数字以进行更多向上/向下播放
    【解决方案2】:

    或者,正如其他人建议的那样,您可以创建UIScrollView 的自定义子类。然后重写initWithCoder:

    - (id)initWithCoder:(NSCoder *)coder 
    {
    self = [super initWithCoder:coder];
    if (self) {
    
        if ([self.subviews count] > 0) {
            UIView* subview = [self.subviews objectAtIndex:0];
            self.contentSize = subview.frame.size;
    
            self.alwaysBounceHorizontal = NO;
            self.alwaysBounceVertical = YES;
            self.showsHorizontalScrollIndicator = NO;
            self.scrollEnabled = YES;
        }
    
    }
    return self;
    }
    

    然后将 IB 中滚动视图的类设置为您的自定义子类。这意味着内容大小是自动设置的。

    这只有在滚动视图中有一个子视图时才有效。 否则添加创建一个新的“容器视图”,将所有内容放入其中,然后将其作为唯一的子视图添加到滚动视图中。

    【讨论】:

      猜你喜欢
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      相关资源
      最近更新 更多