2011-02-04 9 views
1

ImageView를 여러 번 움직여서 지금까지 두 가지 방법을 찾았습니다. 그러나 어느 것이 더 효율적인지 또는 둘 다 같을 지 확신하지 못합니다. 제발, 조언 좀 할 수 있을까요? 감사.ImageView를 움직이는 것이 더 좋은 방법은 무엇입니까?

// Create ImageView and add subview 
UIImageView imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]; 
imgView.frame = CGRectMake(0, 0, image_width, image_height); 
[[self view] addSubview:imgView]; 
[imgView release]; 

// New Coordinates 
int xNew = 100; 
int yNew = 130; 

// First way to move ImageView: 
imgView.frame = CGRectMake(xNew, yNew, image_width, image_height); 

// Second way to move ImageView: 
CGPoint center; 
center.x = xNew; 
center.y = yNew; 
imgView.center = center; 

답변

1

기술적으로, 두 번째 방법은 작은 조금 빠르다 애플의 구현. 그러나 두 번째 방법으로보기의 프레임이 픽셀 경계 외부로 떨어질 수 있습니다 (망막 디스플레이 규칙, 그렇지 않습니까?). 이로 인해 흐릿한 이미지가 생성 될 수 있습니다.

그러나 첫 번째 경우 (xNew, yNew)는보기의 왼쪽 위 모서리이고 두 번째 경우 (xNew, yNew)는보기 중심이기 때문에 결과가 달라집니다.

1
imgView.frame = CGRectMake(xNew, yNew, image_width, image_height); 

imgView.center = CGPointMake(xNew, yNew); 

사실이 비교 이상이다.

개체의 크기를 조정해야하거나 왼쪽 위의 코드를주고 싶다면 코드를 옮기고 코드를주는 것이 편안하고 두 번째 코드와 함께 사용하는 것이 더 합리적이라고 생각하면 첫 번째 코드와 함께 갈 것입니다 방법.

2

또한과 같이, CGAffineTransformTranslate을 사용할 수

imgView.transform = CGAffineTransformIdentity; 
imgView.transform = CGAffineTransformTranslate(imgView.transform, 0, -70); 
당신이 이론에 따라 비용이 될 수있는 이미지 뷰 '경계를 만지지 않기 때문에
관련 문제