CALayer *featureLayer = nil;
[featureLayer setContents:(id)[square CGImage]];
我需要在数组图像内部改变'方形'。
- (void)viewDidLoad
{
[super viewDidLoad];
images = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"ic copy2"],
[UIImage imageNamed:@"bubble 1"],
[UIImage imageNamed:@"bubble 2"],
[UIImage imageNamed:@"bubble 3"],
[UIImage imageNamed:@"bubble 4"],
nil];
square=[images objectAtIndex:0];
//some code....}
这是在触摸事件上更改图像的方法。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
NSLog(@"'Touches Began");
if ([touch view] == previewView) {
square = [images objectAtIndex:1];
NSLog(@"Image touched and changed");
}
currentImage++;
NSLog(@"Touch Count = %d", currentImage);
if (currentImage == [images count])
currentImage = 0;
square= [images objectAtIndex:currentImage];
}
由于Setcontents制作图像的静态副本,因此uiview中的图像不会发生变化。是否有任何方法可以从图像阵列中更改触摸上的addcontent图像。?
答案 0 :(得分:0)
你似乎有点误解了指针。
首次分配时contents = square
contents
是指针地址的副本(不是对象副本)。这意味着稍后更改square
的地址也不会修改contents
。它们是独立的指针,即使它们指向相同的地址。修改contents
指针后,需要重新分配square
指针。
square = [images objectAtIndex:currentImage];
[featureLayer setContents:(id)[square CGImage]];