我是創建一個scrollview,然後在裡面添加imageview,imageView的創建主要代碼如下:
@interface ImagePageView : UIView
@property (nonatomic,retain)UIImageView *imageViewOne;
@property (nonatomic,retain)UIImageView *imageViewTwo;
- (void)imageViewV:(int)pageNum;
- (void)imageViewH:(int)pageNum;
@implementation ImagePageView
@synthesize imageViewOne = _imageViewOne;
@synthesize imageViewTwo = _imageViewTwo;
- (UIImageView *)imageViewOne
{
if (!_imageViewOne) {
_imageViewOne = [[UIImageView alloc] init];
[self addSubview:_imageViewOne];
}
return _imageViewOne;
}
- (UIImageView *)imageViewTwo
{
if (!_imageViewTwo) {
_imageViewTwo = [[UIImageView alloc] init];
[self addSubview:_imageViewTwo];
}
return _imageViewTwo;
}
- (void)imageViewV:(int)pageNum
{
_imageViewOne.image = [[[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[array objectAtIndex:pageNum] ofType:nil]] autorelease];
_imageViewOne.frame = self.bounds;
}
就是這樣的代碼,結果不能顯示。不久找到了問題,紅色部分應該改為:
self.imageViewOne.image = [[[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[array objectAtIndex:pageNum] ofType:nil]] autorelease];
self.imageViewOne.frame = self.bounds;
原因是這樣的,紅色代碼並不會調用初始化的代碼(- (UIImageView *)imageViewTwo/- (UIImageView *)imageViewOne),所以imageViewOne為nil,導致無法顯示圖片。
而self.imageViewOne則會調用get方法。