【问题标题】:How to design the content of a UIScrollView in a nib easily如何在笔尖中轻松设计 UIScrollView 的内容
【发布时间】:2012-04-03 05:08:07
【问题描述】:

我有一个滚动视图,它必须显示一个大于可用显示区域的视图。 我想轻松设计用户界面,而无需每次必须进行一些更改时上下移动嵌入式视图。 问题是可见区域之外的所有东西在 IB 中都是不可见的。

是否有任何开关或技巧可以让 IB 中的所有内容都可见?

【问题讨论】:

    标签: xcode cocoa-touch interface-builder


    【解决方案1】:

    更新

    我已经发布了another solution here,我认为它更简单更好,并且可以在故事板中使用。

    原创

    使用适当的超级视图、位置和大小在 nib 中创建滚动视图。

    接下来,通过将UIView 拖出调色板并将其放到任何现有视图之外的工作区中,创建一个完全独立的顶级 UIView 实例。在属性检查器中,将大小弹出窗口设置为“无”,并确保状态栏、顶部栏和底部栏都设置为无。这是一个例子:

    这个新的顶级视图将成为您的内容视图。给你的视图控制器两个出口:scrollViewcontentView

    @interface MyViewController
    
    @property (nonatomic, weak) IBOutlet UIScrollView *scrollView;
    @property (nonatomic, strong) IBOutlet UIView *contentView;
    
    @end
    

    在笔尖中,将scrollView 插座连接到滚动视图,并将contentView 插座连接到内容视图。

    在内容视图中构建您的内容视图层次结构。根据需要设置它的大小 - 它可以大于 320x480(只要您将其所有条都设置为无)。

    在视图控制器的viewDidLoad 中,添加contentView 作为scrollView 的子视图,并将scrollView.contentSize 设置为contentView 的大小:

    @implementation MyViewController
    
    @synthesize scrollView = _scrollView;
    @synthesize contentView = _contentView;
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        [self configureScrollView];
    }
    
    - (void)configureScrollView {
        CGSize size = self.contentView.bounds.size;
        self.contentView.frame = CGRectMake(0, 0, size.width, size.height);
        [self.scrollView addSubview:self.contentView];
        self.scrollView.contentSize = size;
    
        // If you don't use self.contentView anywhere else, clear it here.
        self.contentView = nil;
        // If you use it elsewhere, clear it in `dealloc` and `viewDidUnload`.
    }
    

    【讨论】:

    • 我照你说的做了,但它没有给我任何调整 UIView 大小的句柄。你能解释一下如何调整 UIView 的大小吗?如果视图无法调整大小,则与另一个控制器相同。请帮忙。
    • @rob : 我很欣赏那张很酷的小动画图片。但我不知道我很简单,无法将视图放入其中。一旦我点击它,它就会从编辑区域返回到列表中。
    • @Alix 我推断您正在使用情节提要。这种技术在故事板中不起作用,因为(从 iOS 6.1 开始)故事板不支持以任何有用的方式编辑顶级视图。
    • @rob :非常感谢。我昨晚也想通了。在设计滚动视图时,它的真正痛苦是一种悲伤。 :( :'(
    • 您可以创建一个单独的 xib 来保存您的内容视图并让您的视图控制器在代码中加载它。您将无法从 xib 中的对象创建任何转场。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多