有一张UITableView
有很多照片的。当一张照片被点击时,amodalView
会显示UIScrollView
,其中还UIImageView
嵌入了一个。此处显示点击的图像(类似于 Facebook 应用程序)。touchesMoved
现在,我可以使用和垂直移动图像CGRectMake
。我想要实现的是,当我垂直拖动图像时,达到某个阈值时,ImageView 和 ScrollView 应该消失,我们应该回到 tableView。
图像移动使用:
- (void) touchesMoved:(NSSet *)touches
withEvent:(UIEvent *)event {
UITouch * touch = [touches anyObject];
CGPoint pos = [touch locationInView: [UIApplication sharedApplication].keyWindow];
NSLog(@"%f", pos.y);
if (pos.y>50&&pos.y<430){
[UIView setAnimationDelay:0];
[UIView animateWithDuration:0.4
animations:^{_photoImageView.frame=CGRectMake(0,pos.y-100,320,200);}
completion:^(BOOL finished){ }];
}
}
此处需要将控制权返回给 tableView 的操作:
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch * touch = [touches anyObject];
CGPoint pos = [touch locationInView: [UIApplication sharedApplication].keyWindow];
if (pos.y>50&&pos.y<430){
[UIView setAnimationDelay:0];
[UIView animateWithDuration:0.4
animations:^{_photoImageView.frame=CGRectMake(0,140,320,200);}
completion:^(BOOL finished){ }];
}
else if(pos.y<50||pos.y>430)
//Code needed here !!
;
}
此外,如果可以在imageView
背景(即滚动视图)上实现透明度,使得表格视图在某些 Alpha 下可见,那将是非常受欢迎的。