내 목표는 간단합니다. UIImage를 표시하는 프로그램을 만들고 싶습니다. 아래에서 위로 스 와이프하면 다른 UIImage가 표시됩니다. 여기 이미지는 행복한 얼굴/슬픈 얼굴이 될 수 있습니다. 슬픈 얼굴은 출발점, 행복한 얼굴은 끝점이어야합니다. 손가락을 스 와이프 할 때 손가락 아래의 부분은 행복한 얼굴을 나타내야합니다.경계 및 프레임 : UIImage의 일부를 표시하는 방법
지금까지 나는 프레임과 UIImageview의 속성을 해피 한 얼굴 이미지로 사용하여이 문제를 해결하려고 노력했습니다.
전환이 화면 중앙에서 시작되고 아래쪽에서 시작되기 때문에이 코드의 내용은 잘못되었습니다. 프레임과 경계 모두의 원점은 0,0 ...
프레임과 경계에 대한 수많은 페이지를 읽었지만 이해하지 못합니다. 어떤 도움을 주셔서 감사합니다!
로드 이미지는 한 번만 호출됩니다.
- (void)loadImages {
sadface = [UIImage imageNamed:@"face-sad.jpg"];
happyface = [UIImage imageNamed:@"face-happy.jpg"];
UIImageView *face1view = [[UIImageView alloc]init];
face1view.image = sadface;
[self.view addSubview:face1view];
CGRect frame;
CGRect contentRect = self.view.frame;
frame = CGRectMake(0, 0, contentRect.size.width, contentRect.size.height);
face1view.frame = frame;
face2view = [[UIImageView alloc]init];
face2view.layer.masksToBounds = YES;
face2view.contentMode = UIViewContentModeScaleAspectFill;
face2view.image = happyface;
[self.view addSubview:face2view];
frame = CGRectMake(startpoint.x, 0, contentRect.size.width, contentRect.size.height);
face2view.frame = frame;
face2view.clipsToBounds = YES;
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint movepoint = [[touches anyObject] locationInView: self.view];
NSLog(@"movepoint: %f %f", movepoint.x, movepoint.y);
face2view.bounds = CGRectMake(0, 0, 320, 480 - movepoint.y);
}
dealloc 함수에는 UIImages 및 UIImageViews가 적절하게 처리됩니다.
나는 왼쪽 상단 모서리에 이미지 프레임을 넣어야한다고 생각해. 이미지가 겹쳐 져야하기 때문입니다 (동일한 이미지이므로 다른 곳에 놓으면 행복한 얼굴이 슬픈 얼굴로 움직입니다). 행복한 얼굴을 보여줄 수있는 길이 있습니까? –
내가 무슨 뜻인지 이해가 잘 모르겠다. 다른 방식으로 설명 할 수 있습니까? – Allyn
이미지가 서로 위에 있어야합니다. 웃는 입과 슬픈 입을 제외하고는 이미지가 거의 동일하기 때문입니다. 전환이 발생하면 전체 이미지가 한 곳에 머물러 있어야합니다. 입만 슬픈 것에서 행복하게 된 것 같습니다. 이것을 얻으려면 두 이미지가 모두 0,0에서 시작해야합니다. 이는 두 이미지 모두 0,0에서 320,480까지의 프레임을 가짐을 의미합니다. –