MoView 由 hyouuu 制作,为 Pendo 量身定制,基于 SPUserResizableView。
这是一个可移动、可调整大小的视图,特别注重与 UIImage 一起使用,因此提供了保存、复制和删除菜单选项。
它已在 App Store 中由 Pendo 使用,拥有大量用户,因此被认为是生产就绪的。欢迎通过拉取请求来使其变得更好!:D
在您的视图控制器中
import MoView
class YourViewController: UIViewController, MoViewDelegate {
// Get a hold of MoViews
var mediaViews = [MoView]()
// Example setup
let imageFrame = CGRect(x: posX, y: posY, width: width, height: height)
let mediaView = MoView(frame: imageFrame)
mediaView.copyItemTitle = local("copy")
mediaView.saveItemTitle = local("save")
mediaView.deleteItemTitle = local("delete")
let imageView = UIImageView(image:image)
imageView.alpha = 0.9
mediaView.contentView = imageView
mediaView.delegate = self
textView.addSubview(mediaView)
mediaViews.append(mediaView)
// Implement MoViewDelegate - provided some example usages below
// MARK: MoViewDelegate
func moViewTapped(moView: MoView) {
log("moViewTapped")
}
func moViewDidBeginEditing(moView: MoView) {
log("moViewDidBeginEditing")
textView.bringSubview(toFront: moView)
}
func moViewDidEndEditing(moView: MoView, edited: Bool) {
log("moViewDidEndEditing")
}
func moViewCopyTapped(moView: MoView) {
if let imageView = moView.contentView as? UIImageView {
if let image = imageView.image {
let pasteboard = UIPasteboard.generalPasteboard()
if let data = UIImagePNGRepresentation(image) {
pasteboard.setData(data, forPasteboardType: "public.png")
return
}
}
}
assertionFailure("copyItem failed")
}
func moViewSaveTapped(moView: MoView) {
if let imageView = moView.contentView as? UIImageView {
if let image = imageView.image {
Photor.one.saveImage(image)
}
}
}
func moViewDeleteTapped(moView: MoView) {
log("moViewDeleteTapped")
if let media = moView.media {
rlmDelete(media as! MediaR, ownerNote: note)
}
mediaViews.removeObject(moView)
moView.removeFromSuperview()
}
MoView 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile:
pod "MoView"
hyouuu,[email protected]
MoView 适用于 MIT 许可。有关更多信息,请参阅 LICENSE 文件。