我将向每个窗口添加 50 个窗口,每个窗口有 4 个 UIButtons(带文本)和 1 个 UILabel(也带文本)。我需要这样做吗?有没有更好的办法?
最佳答案
如果可以的话,创建额外的窗口从来都不是一个好主意,尤其是在几乎不需要这样做的 iOS 上。您应该创建一个 UIViewController 子类并将其作为您的 Root View Controller (这已经在单 View 应用程序模板中设置)。然后,创建一个 UIView 的子类——我们称它为“MyQuizView”。 “MyQuizView”应该有一个自定义初始化器,它接受五个 NSString(一个用于问题,四个用于答案)和一个整数来确定哪个答案是正确的。然后 UIViewController 子类可以实例化其中的 50 个 View ,将模型中的值传递给它们,并使它们成为主视图的 subview 。
编辑:这是一个 UIView 子类的自定义初始化程序示例。
- (id) initWithFrame:(CGRect)frame question:(NSString*)ques answers:(NSArray*)ans correctAnswer:(int)correctAns{
self = [super initWithFrame: frame];
if (self) {
self.question = ques;
self.answers = ans;
self.correctAnswerNumber = correctAns;
[self setup];
}
return self;
}
自定义初始化程序以 init
开头。它将 self
设置为其父类(super class)的指定初始化程序的返回值,然后,如果 self
不为 nil,它会初始化其状态——通常使用传递的参数来执行此操作。最后它返回 self
。这个假设您拥有正确的属性,并在将属性设置为正确的值后调用一个名为 setup
的方法,从而允许您使用它们来创建标签等等。或者,您可以获取传入的值并使用它们立即创建标签和按钮,设置目标操作并将它们放置为 subview ,这样您就不需要将参数保留为属性。每个按钮都可以被赋予一个数字标签,这样您就可以知道答案是否正确(基于传递给初始化程序的整数,您将必须将其存储在某个地方)。这完全是凭内存,但希望它是正确的。
关于objective-c - 结合 UIWindows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13731729/