PSPushPopPressView 0.0.1

PSPushPopPressView 0.0.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

未声明的所有者维护。



  • 作者
  • Peter Steinberger

PSPushPopPressView 是一个自定义视图,它提供了对您的内 容的直接操作功能——就像在Push Pop Press的Our Choice中的应用中的图片和视频一样。所有关于此类交互及其应用 的功劳都归于Push Pop Press。此视图试图模仿他们在Our Choice中完善 的交互。

感谢 Martin Reichart(来自Blacksmith Software)所提供的原始实现。

请务必在真实的iPad上测试,而不是模拟器——感受它会更加令人震撼。并且使用您所有的手指,您可以同时操作多个视图!

PSPushPopPressView

缩放、旋转、拖动——同时进行。在此示例中,背景被缩小,透明度被增加,同时变换是活跃的。

功能

  • 支持双指直接操作以缩放、平移和旋转
  • 支持轻击进入全屏并返回到原始框架(委托可以单独阻止此行为,如果您添加了一个作为子视图的按钮并且用户按下了按钮,此操作也将被禁用)
  • 当进入全屏或返回到视图的原始框架时会完全动画化
  • 根据视图相对于其目标外观的"距离",提供缩放和位置的半真实弹性效果(例如,当视图需要大量移动以返回到其位置时,弹性会比视图只需要稍微移动更大;也适用于缩放变化)
  • 从当前视图分离并停靠在主视图中,这样您的视图始终扩展到全屏。这在您在复杂的视图层次结构中添加 PSPushPopPressView时尤其有用。

ARC

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 文件)

支持 / 联系我们 / 归档 / 功能

我很高兴接受拉取请求,并请随时通过 Twitter 联系 PeterMartin