在 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

Iphone sdk 自定义 uiview 方向问题

在 UIViewController 的主视图中加载自定义 UIView

nib 中的 UIView 在 iPad 上是 nil,在 iPhone 上不是 nil

使用 SDK 在 iPhone 上下载视频

在自定义视图/uiview 子类上实现 iphone 的复制/粘贴控件