MMSLayeredView 2.1.0

MMSLayeredView 2.1.0

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布最后发布2017年11月
SwiftSwift 版本4.0
SPM支持 SPM

William Miller 维护。




  • William Miller

MMSLayeredView

CI Status
Version
License
Platform
Readme Score

这个 MMSLayeredView 类提供了在背景视图上分层 UIViews 并将合成图像保存到 png 文件的功能。分层视图可以在视图边界的限制内移动、调整大小和缩放。

Example

## 基本用法 要运行示例项目,请首先克隆存储库,然后从 Example 目录运行 `pod install`。

创建一个 MMSLayeredView 对象。将其添加到应用程序的 UIViewController 子类之一的子视图中。或者使用 Interface Builder 将 UIView 添加到其中一个 UIViewControllers 的子视图中。在 Identity Inspector 中选择 MMSLayeredView 类。使其适合您应用程序的需求尺寸。

向对象添加一个背景视图。背景视图可以是 UIView 或任何 UIView 的子类。通常,您会将 UIImageView 添加为背景视图。调用 addBackgroundView 方法设置背景视图。

override func viewDidLoad() {
    super.viewDidLoad()

    let exampleLayeredView = MMSLayeredView.init(frame: CGRectMake(20.0, 20.0, 100.0, 100.0))

    view.addSubview(exampleLayeredView)

    let backgroundImage = UIImage.init(named: "example.jpg")

    let backgroundView = UIImageView(image: backgroundImage)

    backgroundView.contentMode = .ScaleToFill

    sourceView.addBackgroundView(backgroundView)

}

addBackgroundImage 将视图添加到子视图中,调整宽度和高度以匹配 exampleLayeredView 的尺寸,并将框架的原点设置为 (0,0)。

一旦设置了背景视图,所有添加的子视图将显示在背景视图之上,按照 z-顺序。可以根据添加子视图的顺序设置背景视图;它总是在 z-顺序中显示在所有子视图的后面。

为视图设置一个唯一的标签,可以使用该方法访问任何子视图

    viewWithTag(tag:Int)

使用 UIView 视图层次结构方法将子视图添加、删除和重新排列到分层视图中

    addSubview(view:UIView)

    removeFromSuperview()

    insertSubview(view:UIView, atIndex: Int)

    insertSubview(view: UIView, aboveSubview: UIView)

    insertSubview(view: UIView, belowSubview: UIView)

    exchangeSubviewAtIndex(index1: Int, withSubviewAtIndex: Int)

    sendSubviewToBack(view: UIView)

    bringSubviewToFront(view: UIView)

用户通过触摸视图中选择一个子视图作为应用程序操作的焦点。当触摸时,视图通过填充其外围区域以半透明的黑色来显示它具有焦点。要访问具有焦点的 UIView,请访问属性

public var viewWithFocus: UIView?

最后,这个类支持将背景视图和子视图合并到图像的功能。使用此功能,您可以使用该类构建提供对图像分层文本、使用贴纸装饰图像或两者都有的功能的应用程序。这是支持导出图像的公共方法

public func mergeTextAndImage() -> UIImage?

用户交互

此类给应用程序用户以下操作

  • 缩放子视图:捏合手势。
  • 移动子视图:双击以给视图移动焦点,然后拖动它。
  • 大小子视图:使用手指拖动手势以独立调整尺寸维度。
  • 给予子视图焦点:一个手指轻触动作可给予子视图焦点,当它已经获得焦点时移除它。轻触背景视图以给予它焦点。

需求

  • MMSLayeredView 需要 iOS 8.3 或更高版本。
  • Swift 3.0

安装

MMSLayeredView 通过 CocoaPods 提供。要安装,只需将以下行添加到您的 Podfile
中。

pod "MMSLayeredView"

作者

William Miller,[email protected]

许可协议

此项目采用 MIT 许可证。请参阅 LICENSE 文件以获取更多信息。通过链接到 项目页面 欢迎添加贡献。