SWSnapshotStackView 0.0.1

SWSnapshotStackView 0.0.1

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最新发布2014年12月

未查明的所有者 维护。



  • Scott White

Snapshot Stack View

Snapshot Stack View 提供了一种简单的方法,通过绘制毛边框和相关阴影,将任何宽高比的 UIImage 装饰起来。它还可以渲染图像,使其看起来就像一组照片(或快照)中的顶部照片(或快照)。最佳描述方式是截图。

Screenshot

功能

  • 多种显示模式;单张或堆叠。
  • 尊重图像宽高比,将快照缩放到视图框架内
  • 支持所有图像宽高比(横向、正方形、纵向)
  • 支持动态修改视图框架、显示为顶部快照的图像和显示模式。

背景

Snapshot Stack View 是为使用在我目前正在开发的 iOS 应用程序中装饰 UIImage、向用户展示而开发的。此应用程序必须显示未知和不同的宽高比图像。

正常情况下,用于装饰 UIImage 以供显示的 Snapshot Stack View 中绘制的效果,可以作为图层轻松在 Photoshop 中生成,位于 UIImage 之上或之下,然而图像的宽高比和尺寸必须是已知的和静态的,因此不可行。

常用的另一种方法是将图像裁剪为一个固定宽高比,但这可能会导致裁剪掉图像中的重要信息或破坏照片的一般构图,这也不是我想冒的风险。

我使用 Snapshot Stack View 在文章内显示缩略图供用户触摸,然后启动全屏图像查看器。我尽量传达既可以使用单个图像也可以使用多个图像的可用性,使用 Snapshot Stack View 的显示模式(单张或堆叠)。

兼容性

Snapsho㯩ek Stack View 已开发用于在 iOS 3.1 或更高版本(部署目标)上运行,并使用 iOS SDK 5.0、Xcode 4.2.1(基础 SDK)开发。

由于我为最初开发的旨在使用 Snapshot Stack View 的目标应用程序需要 iOS 3 的支持,因此 Snapshot Stack View 不使用任何更新版本的 iOS 功能,如 blocks,更重要的是自动引用计数(ARC)。

如果在具有 ARC 启用的项目中使用 Snapshot Stack View,请选择性地禁用 ARC 以编译 Snapshot Stack View 源文件。

  1. 在 Xcode 项目导航器中选择项目
  2. 从目标列表中选择所需的 Target
  3. 选择“构建阶段”选项卡
  4. 扩展编译源列表,并双击 SWSnapshotStackView.m 文件以修改该文件的编译器标志。
  5. -fno-objc-arc 添加到编译器标志中

用法

要在项目中使用 Snapshot Stack View

  1. SWSnapshotStackView.hSWSnapshotStackView.m 添加到您的 Xcode 项目中。
  2. 如果尚未添加,请确保将 QuartzCore.framework 框架添加到项目中。
  3. 使用 #import "SWSnapshotStackView.h" 在目标视图控制器源中导入 Snapshot Stack View 标头文件。
  4. 在 Interface Builder (IB) 中使用 XIB 创建 Snapshot Stack View 类的实例,或者像任何其他视图一样程序性地创建。
  5. 在代码中设置要显示的图像(已有的 UIImage),在 image 属性中进行设置。
  6. 在代码中设置所需的显示模式,在 displayAsStack 属性中进行设置。

有关用法示例,请参阅演示应用程序 SWSnapshotStackViewDemo/

演示

提供了一个演示应用程序来说明(并测试)Snapshot Stack View 的用法,演示了支持;

  • 具有不同宽高比的多个图像(图像 1 - 横版,图像 2 - 方形,图像 3 - 竖版)。
  • 使用滑块动态调整视图框架的大小。
  • 通过开关选择和渲染显示模式(单个或堆叠)。

Screenshot

已知问题

发布时

  • 哑光和阴影效果需要缩放以适应较小的框架大小,否则效果可能会夸张。

有关问题/错误的最新列表,请参阅GitHub 上的问题

未来工作

GitHub Issue Tracker 下维护了一份未来增强功能的列表,标签为 Enhancement

如果您想提高特定增强功能的优先级以增加其完成的可能性,请在相应的增强功能问题中留下评论。

贡献

如果您发现任何问题,欢迎提出一个 新问题,或者分叉仓库,做出必要的更改,并提交一个合并请求以供考虑。

也欢迎通过电子邮件向我提供任何建议或反馈。

许可(源代码)

版权(c)2012 Scott White。保留所有权利。

MIT 许可

在此特此授予,免费无限制地向任何获得此软件和相关文档文件(“软件”)副本的人授权,以不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许向软件提供的人以任何形式使用,受以下条件的约束:

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“原样”提供,没有任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定目的和无侵权的保证。在任何情况下,作者或版权持有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因提起的诉讼,还是源于、因或与软件的使用或其他处理有关。

请参阅附带的MIT许可副本的LICENSE文件。否则,请参阅http://www.opensource.org/licenses/MIT

许可(图像)

在Snapshot Stack View演示应用中使用的图像(例如350D_IMG_3157_20071030w.jpgIMG_2777_080216w6s.jpgIMG_5737_081229w7sq.jpg)是上述源代码许可的例外,因此不受MIT保护。

版权(c)2012 Scott White。保留所有权利。

未经Scott White明确许可,不得在 Snapshot Stack View 演示应用程序之外以任何形式或通过任何手段(图形、电子或机械)进行复制。

联系方式

  • 邮箱:请参阅源代码文件头部以获取邮箱地址。
  • Twitter: @snwau
  • GitHub: snwau