今天用下面这个方法添加UIImageView但是运行却不显示
@interface ViewController ()
@property(nonatomic, weak)UIImageView *imageView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIImageView *imageV = [[UIImageView alloc] init];
imageV.frame = CGRectMake(100, 100, 100, 100);
imageV.backgroundColor = [UIColor redColor];
self.imageView = imageV;
}
分析:
- 在内存中创建了一个新的UIImageView对象,设置好了属性
- 然后控制器中的imageView指针指向这个对象
- 然后就是运行显示
发现问题:新创建的这个对象在内存中根本就不属于UIViewController,就算指向这个对象也不会显示的
正确做法
@interface ViewController ()
@property(nonatomic, weak)UIImageView *imageView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIImageView *imageV = [[UIImageView alloc] init];
imageV.frame = CGRectMake(100, 100, 100, 100);
imageV.backgroundColor = [UIColor redColor];
[self.view addSubview:imageV];//把对象添加到控制器中
self.imageView = imageV;
}
时间: 2024-10-08 09:29:25