1

为什么blackview总是为空?

@property (strong, nonatomic) UIView *blackView;

[_blackView setFrame:self.view.bounds];
[_blackView setBackgroundColor:[UIColor colorWithWhite:0 alpha:0.8]];
[self.view addSubview:_blackView];
 NSLog(@"%@", _blackView);  // i get null

我之前使用 alloc init 实例化它,但我需要在方法之间访问这个视图,所以我将它用作属性

4

4 回答 4

3

尝试使用self.blackview并初始化

self.blackview = [[UIView alloc] initWithFrame:self.view.frame];

于 2013-07-25T02:07:25.220 回答
1

不得不说,这是连初学者都应该知道的事情。

创建属性后。确保你已经合成了它。

@synthesize blackView;

然后确保至少为它分配一些内存,使用

self.blackView = [[UIView alloc]init];

然后你可以执行任何你想要的功能。

于 2013-07-26T12:04:51.217 回答
1

在对对象(UIView)做任何事情之前。您必须为其分配内存,并进行一些初始化。使用 alloc 和 init 方法。喜欢:

UIView *blackView = [[UIView alloc] initWithFrame:CGrectMake( , , , )];
于 2013-07-25T05:48:32.490 回答
0
@property (strong, nonatomic) UIView *blackView;

在这里,您制作了decalaration. 但这并不意味着你已经分配了任何memory给它。

在你的实现文件中,你需要allocate memory它和initialise它。如果您使用的是 XCode 版本 6 及更高版本,则不需要合成您的属性,因为这是由 Xcode 本身完成的。否则,您需要整合您的财产。

@synthesize blackView;

self.blackView = [UIView alloc]initWithFrame:self.view.bounds];

此外,如果您有一个 nib 文件,并且您已经添加了一个UiView并且您希望它是您的,blackView那么您必须IBoutlet从您的 nib 文件建立一个连接到您的 .h 文件。在这种情况下,您不需要initialiseallocate记忆您的 UIView 对象。这是由iOS SDk它自己完成的。

于 2013-07-26T12:11:47.727 回答