在 iphone sdk 上有效加载 uiviews
Posted
技术标签:
【中文标题】在 iphone sdk 上有效加载 uiviews【英文标题】:Loading uiviews efficiently on iphone sdk 【发布时间】:2011-04-24 07:35:34 【问题描述】:我有 20 个 uiviews 类,分别标记为“Question1”、“Question2”、“Question3”等,一直到“Question20”。
在我的主控制器中,我尝试使用名为 nextQuestion 的方法并将当前问题编号的参数传递给它。但是,我希望找到一种方法来分配正确的问题视图。
我最终做了这样不正确的事情。
UIView *nextLevel = [[[NSString stringWithFormat:@"Question%i",levelNow] alloc]initWithFrame:CGRectMake(0, 0, 480, 320)];
有人可以帮我解决这个问题吗? 谢谢
【问题讨论】:
是的,使用 UILabel 并使用 text 属性设置内容。只需实例化一次并为当前问题设置文本。 【参考方案1】:您创建一个字符串,然后在其上调用 alloc。但是,alloc 只能用于类。所以你错过了从字符串到类的步骤。这个差距可以用 NSClassFromString 来弥补:
Class viewClass = NSClassFromString([NSString stringWithFormat:@"Question%i",levelNow]);
UIView *nextLevel = [[viewClass alloc] initWithFrame:CGRectMake(0, 0, 480, 320)];
【讨论】:
以上是关于在 iphone sdk 上有效加载 uiviews的主要内容,如果未能解决你的问题,请参考以下文章
在 iPhone SDK 中将 UIButton 从 UIScrollView 移动到 UIView
在 UIViewController 的主视图中加载自定义 UIView