【发布时间】:2014-01-08 15:53:27
【问题描述】:
Xcode Interface Builder 问题
我个人不喜欢界面生成器在 Xcode 中的工作方式。在这个例子中,我试图创建一个相当复杂的视图控制器。在视图控制器的viewDidLoad 上,我显示了一个自定义警报视图(因此)。它实际上不是警报视图,而更多的是向用户显示一些信息的视图。我有一个暗淡的背景视图和一个在此之上的视图。如果我尝试在界面生成器中创建它,它会变得过于复杂,因为您无法在后台选择视图并移动它们等,而不会将子视图放入错误的视图等等......
场景
我想要做的是创建一个包含一些标签和一个按钮的视图。视图控制器具有基于此的难度属性,它将在标签/标签数量中具有不同的文本。
IE。简单 -- 3 个标签
硬——4个标签
我像这样创建 dimmedView 和 alert(styled)View:
// Setup the dimmedView
UIView *dimmedView = [[UIView alloc] initWithFrame:self.view.frame];
dimmedView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.6];
// Setup the startingAlertView
UIView *startingAlertView = [[UIView alloc] init];
startingAlertView.backgroundColor = [UIColor whiteColor];
然后我根据一些逻辑创建三/四个标签,并根据逻辑将必要的标签添加到startingAlertView。
显而易见的问题是,在任何时候都没有设置视图框架。这意味着它返回 0,0,0,0。我想要发生的是根据添加的标签获取所需高度的视图。
我正在为 IOS7 构建并使用自动布局。我是否应该设置约束,然后可能会调整视图中的相关高度和位置?
【问题讨论】:
-
@MarcoPace 或者,使用自动布局,旨在解决这个问题。
-
@jrturton 好,我没有读最后一句话。由于它没有使用 IB,我错误地认为他不想使用它们。感谢您的回复。
-
谢谢,在这个例子中 IB 没有用……主要是因为这是一个顶层视图,下面有一个复杂的视图。如果您可以在为其他人工作时切换视图以在 IB 中显示/隐藏...现在这将很有用
标签: ios uiview ios7 autolayout