我是iOS开发的新手。我有以下代码
@property (nonatomic, strong) NSMutableArray *myImages;
-(void) viewDidLoad
{
[super viewDidLoad];
self.myImages = [[NSMutableArray alloc] init];
UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image1"]];
[self.myImages addObject:image];
[image setCenter:CGPointMake(10, 10)];
[self.view addSubview:image];
}
-(void) viewDidAppear:(BOOL)animated
{
for (;;) {
for (int i=0; i<[self.myImages count]; i++) {
[self.myImages[i] setCenter:CGPointMake(300, 300)];
}
}
}
当我这样做时,图像显示在点10,10。但是它没有变为300,300。任何人都可以建议我做错了什么。
如果我做的话
[self.myImages[0] setCenter:CGPointMake(300, 300)];
在无限循环之前,工作正常。但在无限循环中没有运气。
这段代码只是一段代码,很多代码都缺失了,但你应该能够理解我对此的看法。
由于
答案 0 :(得分:4)
您忘记将imageView添加到数组中。添加
[self.myImages addObject:image];
...在viewDidLoad
。
作为旁注:在Objective-C中缩写标识符并不常见。使用imageView
代替image
。代码变得更容易阅读。
您可能也不希望在viewDidAppear
中使用无限循环。
答案 1 :(得分:0)
首先我对ios也是新手,所以我不确定。
我认为有两种选择:
我不确定视图是否确实出现是更改图像的正确方法我建议将出现视图。如果您真的想要使用的那个,可以尝试使用dispatch_async来更改主ui线程上的图像。
也许尝试循环?这就是为什么你将itrator设置为UIimage并且它将识别图像。这不太可能解决它,但也许......