【发布时间】:2014-03-06 01:37:36
【问题描述】:
我正在深入研究 iOS 开发,我从一个非常简单的示例开始,以了解如何使用 IB 创建自定义视图。我有一个简单的视图控制器...
@interface MyViewController ()
@property (weak, nonatomic) IBOutlet MyView *myView;
@end
@implementation MyViewController
//Boilerplate code...
还有我的自定义视图...
@implementation MyView
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
self.backgroundColor = [UIColor redColor];
}
return self;
}
在应用委托中,我将根视图控制器设置为 MyViewController...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
MyViewController *myVC = [[MyViewController alloc] init];
self.window.rootViewController = myVC;
[self.window makeKeyAndVisible];
return YES;
}
所以我有一个用于MyViewController 的笔尖和一个用于MyView 的笔尖。在 MyViewController 的 nib 中,我将一个 UIView 拖到它的中心,并将该视图的类设置为 MyView。当我运行该应用程序时,我看到了带有红色背景颜色的 MyView 视图。这是我的问题:当我注释掉 MyView 实现文件中将背景颜色设置为红色的代码行,而是使用MyView 的笔尖在界面生成器中将背景颜色设置为其他颜色时,视图的背景颜色为白色。为什么我不能在 Interface Builder 中设置 MyView 的背景颜色?为什么只有在我以编程方式设置时才会设置?
提前感谢您的智慧!
【问题讨论】: