我的目标很简单:我想创建一个程序,显示一个UIImage,当从底部向上滑动时,显示另一个UIImage。这里的图像可以是快乐的面孔/悲伤的面孔。悲伤的面孔应该是起点,快乐的面孔是终点。当用手指滑动时,手指下面的部分应该显示快乐的面孔。
到目前为止,我尝试使用UIImageview的frame和bounds属性来解决这个问题。
这段代码做的不对,因为过渡效果始于屏幕中心而不是底部。请注意,框架和边界的原点都在0,0处......
我已经阅读了许多关于框架和边界的页面,但我还是不理解。任何帮助都将不胜感激! loadimages仅被调用一次。
到目前为止,我尝试使用UIImageview的frame和bounds属性来解决这个问题。
这段代码做的不对,因为过渡效果始于屏幕中心而不是底部。请注意,框架和边界的原点都在0,0处......
我已经阅读了许多关于框架和边界的页面,但我还是不理解。任何帮助都将不胜感激! loadimages仅被调用一次。
- (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。