2014-09-23 48 views
0

我對iOS開發相當新穎。我有以下代碼Objective C setCenter on Image

@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)]; 

,工作正常。但在無限循環中沒有運氣。

此代碼只是一個代碼片段,很多代碼都已丟失,但您應該能夠理解我所得到的結果。

謝謝

回答

4

您忘了將imageView添加到數組中。 Add

[self.myImages addObject:image]; 

... in viewDidLoad

附註:在Objective-C中縮寫標識符並不常見。使用imageView而不是image。代碼變得更容易閱讀。

您可能不想要在viewDidAppear中的無限循環。

+0

嗨尼古拉,感謝您的答覆。我用更多的信息修改了我的問題。無限循環是我正在嘗試的東西 – c11ada 2014-09-23 14:31:29

0

首先,我對ios有點新,所以我不確定。

我認爲有2種選擇:

  1. 我不知道,如果視圖確實出現是改變形象,我建議視圖將出現在正確的方法。如果你真的想要你使用的那個,可以嘗試dispatch_async來改變主UI線程上的圖像。

  2. 也許嘗試在循環?那你爲什麼要將itrator設置爲UIimage,它會識別圖像。這是不太可能解決它,但也許...