J W*_*J W 1 iphone uiimageview
我通常遵循在我的方法中创建一个对象的模式(比如viewDidLoad),让属性保持在它上面,然后释放创建的原始对象.所以像这样:
NSArray *myArray = [NSArray alloc] initWithObjects:@"1", @"2", @"3", nil];
self.array = myArray;
[myArray release];
Run Code Online (Sandbox Code Playgroud)
我以为我可以做同样的事情UIImageView.我有一个UIImageView创建我的.xib.我有一个出口,这是一个像这样的财产
@property (nonatomic, retain) IBOutlet UIImageView *imageView;
Run Code Online (Sandbox Code Playgroud)
在我viewDidLoad,我做:
UIImageView *imgView = [[UIImageView alloc] initWithImage;[UIImage imageNamed:@"arrow.png"]];
self.imageView = imgView;
[imgView release];
Run Code Online (Sandbox Code Playgroud)
如果我运行它,我在屏幕上没有任何东西.但是,如果我在我这样做viewDidLoad:
[self.imageView setImage:[UIImage imageNamed:@"arrow.png"]];
Run Code Online (Sandbox Code Playgroud)
我确实在屏幕上显示了我的箭头图像.是否有关于不同的东西UIImageView,我很想念这里?
由于第一次响应而编辑:UIImageView不同于UITableView我需要将其作为子视图添加到当前视图中吗?当我创建一个UITableViewin时IB,我不会将其添加为subviewin viewDidLoad.
谢谢.
你错过了IBOutlet工作方式的重点.如果指定了某些东西,.xib那么它已经为你分配了:)你只需要使用它.
因此[self.imageView setImage:[UIImage imageNamed:@"arrow.png"]];,您只需为其分配图像即可.
但是,在做的时候
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrow.png"]];
self.imageView = imgView;
[imgView release];
Run Code Online (Sandbox Code Playgroud)
你实际上释放了在该行imageView创建的实例并设置了一个新实例,你也没有将它作为子视图添加到任何东西.因为它是一个新的实例,所以需要添加!! 但无论如何,如果你使用这种方法是错误的IBself.imageView = imgView;IBOutlet
| 归档时间: |
|
| 查看次数: |
5953 次 |
| 最近记录: |