检查rdelmar的答案,看看这个
的实现我有一个我们团队希望做的模型。基本上,当用户选择单元格时,所选单元格上方的部分将动画显示在顶部,而单元格下方的部分将动画显示在底部。根据屏幕中所选单元格的位置,它可以滚动到顶部或底部。它将揭示'细节'所选单元的控制器。主要列表上的Hotel Tonight应用程序提供了一个很好的例子。
以下是一个示例:
所以我的问题是,我知道我可以拆分UITableView但是如何?我认为它可以作为UICollectionView完成,因为可以动画各个元素。或者可能是UIView截图。我还没有真正做过这样的事情,所以任何帮助都会得到解决。
THX
答案 0 :(得分:2)
我没有尝试任何类似于Hotels Tonight应用程序的东西,但我认为你需要完成这些外观的步骤是这样的,
1)从具有黑色主视图的UIViewController中的表视图开始
2)使用renderInContext
创建表视图的图像- (UIImage *)imageWithView:(UIView *)view {
UIGraphicsBeginImageContextWithOptions(CGSizeMake(view.bounds.size.width, view.bounds.size.height), view.opaque, [[UIScreen mainScreen] scale]);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
3)用你喜欢的第一张图片制作两张图片,
-(NSArray *)createHalvedImages:(CGImageRef) image {
NSMutableArray *arr = [NSMutableArray array];
for(int i = 0; i < 2; i++){
float y = i * image.size.height/2.0;
CGImageRef tmp = CGImageCreateWithImageInRect(image, CGRectMake(0, y, image.size.width, image.size.height/2));
[arr addObject:[UIImage imageWithCGImage:tmp]];
}
}
return arr;
}
4)用包含两个图像的两个图像视图替换表格视图。
5)为两个图像视图设置动画以显示控制器的黑色主视图
6)使用淡入淡出动画
以模态方式显示细节控制器答案 1 :(得分:0)
您可以将多个UIView
布置在另一个之上,无论该集合是静态还是无。确定每个状态的维度,并找出如何将每个UIView
的大小调整为您想要的大小。
在视图控制器中使用UITapGestureRecognizer
,并在handleTap:
中使用hitTest:withEvent:
上的self
或pointInside:withEvent:
上的UIView
来{确定哪个被窃听。然后使用方法展开UIView
并折叠其他人......
为了改变动画,我是动画块的忠实粉丝。您可以阅读here。
答案 2 :(得分:0)
如果您要显示多个记录,请使用tableview。当用户选择任何单元格到您想要的高度时,增加行高。您可以通过tableview委托方法和编辑tableview来计算所有这些。