PSPushPopPressView 是一个自定义视图,它提供了对您的内 容的直接操作功能——就像在Push Pop Press的Our Choice中的应用中的图片和视频一样。所有关于此类交互及其应用 的功劳都归于Push Pop Press。此视图试图模仿他们在Our Choice中完善 的交互。
感谢 Martin Reichart(来自Blacksmith Software)所提供的原始实现。
请务必在真实的iPad上测试,而不是模拟器——感受它会更加令人震撼。并且使用您所有的手指,您可以同时操作多个视图!
缩放、旋转、拖动——同时进行。在此示例中,背景被缩小,透明度被增加,同时变换是活跃的。
PSPushPopPressView使用ARC并与iOS 4.0以上版本兼容。您需要至少Xcode 4.2以及LLVM 3.0来编译它。
创建PSPushPopPressView的一个实例,将其插入到您的视图层次结构中,您就完成了。
// create the push pop press container
PSPushPopPressView *pushPopPressView = [[PSPushPopPressView alloc] initWithFrame:CGRectMake(140, 20, 500, 400)];
pushPopPressView.pushPopPressViewDelegate = self;
[self.view addSubview:pushPopPressView];
您可以将任何UIView添加到容器中。只需确保它是可自动调整大小的(否则看起来不会太好)。此外,注意添加具有自身用户交互的子视图(例如UIWebView或UIScrollView)可能会弄乱与视图的交互。
// add a cat image to the push pop press view
UIImageView *catImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cat.jpg"]];
catImage.frame = pushPopPressView.bounds;
catImage.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
catImage.clipsToBounds = YES;
[pushPopPressView addSubview:catImageView];
这只是一个简单的例子。在示例项目中,有如何以这种方式嵌入视频的代码,还有类似于你在 OurChoice 中看到的全景展示代码。
您可以将自己设置为一个 PSPushPopPressView,以在用户开始/停止操作视图或视图即将/已经进入全屏或返回原始框架时接收回调。
阴影动画比较复杂,有时动画看起来相当不佳。
有时触摸无法被正确识别,导致即使代表告诉您没有人正在拖动它时也发生了操作。
当同时进行动画和旋转时,有时视图框架重置错误。
不用担心——它运行得相当不错,现在已经在生产中使用了数月——人们都很喜欢它!
PSPushPopPressView 在 MIT 许可下发布(请参阅 LICENSE 文件)