2013-11-26 40 views
0

我是iOS新手。我試圖在特定位置繪製圖像。我使用NSMutableArray來存儲它的位置。更新圖片職位

// I am calling addCutter method in init method of ViewController 
- (void) addCutter 
{ 
    //gameModel.cutters is NSMutable Array for position 
     [gameModel.cutters addObject:[NSValue valueWithCGRect:gameModel.cutterRect]]; 

     cutter = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cutter.png"]]; 

     //cutter is UIImageView 
     [cutter setFrame:[[gameModel.cutters objectAtIndex:[gameModel.cutters count]-1] CGRectValue]]; 

     cutter.tag = [cutters count] + 100; 

     [cutters addObject:cutter]; 

     [self.view addSubview:[cutters objectAtIndex:([cutters count]-1)]]; 

} 

,但圖像不更新其位置

//code for update the position 

-(void) moveCutter 
{ 
    for(int i=0;i<[gameModel.cutters count]-1;i++) 
    { 
      CGRect newCutterRect = [[gameModel.cuttersobjectAtIndex:i] CGRectValue]; 

      newCutterRect.origin.x += [[disX objectAtIndex:i]floatValue]; 
      newCutterRect.origin.y += [[disY objectAtIndex:i]floatValue]; 

      [gameModel.cutters replaceObjectAtIndex:i withObject:[NSValue valueWithCGRect:newCutterRect]]; 
    } 
} 

回答

1

實際上你需要設置視圖的新框架。您只是更改了視圖原始框架的副本,該框架與視圖無關。

+0

如何爲沒有,它仍然沒有改變 – user2546410

0

您需要更新框架還有:

-(void) moveCutter 
{ 

    for (cutter in cutters) { 
     [cutter removeFromSuperview]; 
    } 
    for(int i=0;i<[gameModel.cutters count]-1;i++) 
    { 
     CGRect newCutterRect = [[gameModel.cutters objectAtIndex:i] CGRectValue]; 
     newCutterRect.origin.x += [[disX objectAtIndex:i]floatValue]; 
     newCutterRect.origin.y += [[disY objectAtIndex:i]floatValue]; 
     cutter = [cutters objectAtIndex:i];//Get your object here as well 
     cutter.frame = newCutterRect; // Update frame here 
     [self.view addSubview:cutter]; 
     [gameModel.cutters replaceObjectAtIndex:i withObject:[NSValue valueWithCGRect:newCutterRect]]; 
    } 
    } 
+0

設置新的框架? – user2546410

+0

@ user2546410這有什麼問題,代碼你所得到的視圖 –

+0

我已將上述代碼放入我的項目中,但圖像位置不變 – user2546410