KUIPopOver
- 在 iOS 中(iPhone,iPad)轻松使用 PopOver
要求
安装
CocoaPods
KUIPopOver 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中
pod 'KUIPopOver'
Carthage
适用于iOS 8及以上版本的Carthage项目
github "Kofktu/KUIPopOver"
使用说明
之前
let popOverViewController = DefaultPopOverViewController()
popOverViewController.preferredContentSize = CGSize(width: 200.0, height: 300.0)
popOverViewController.popoverPresentationController?.sourceView = sender
let customView = CustomPopOverView(frame: CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: 200.0, height: 300.0)))
popOverViewController.view.addSubview(customView)
popOverViewController.popoverPresentationController?.sourceRect = sender.bounds
present(popOverViewController, animated: true, completion: nil)
KUIPopOverUsable
public protocol KUIPopOverUsable {
var contentSize: CGSize { get }
var contentView: UIView { get }
var popOverBackgroundColor: UIColor? { get }
var arrowDirection: UIPopoverArrowDirection { get }
}
UIView
public func showPopover(sourceView: UIView, sourceRect: CGRect?, completion: ShowPopoverCompletion?)
public func showPopover(barButtonItem: UIBarButtonItem, completion: ShowPopoverCompletion?)
public func dismissPopover(animated: Bool, completion: DismissPopoverCompletion?)
UIViewController
public func showPopover(sourceView: UIView, sourceRect: CGRect?, completion: ShowPopoverCompletion?)
public func showPopoverWithNavigationController(sourceView: UIView, sourceRect: CGRect?, completion: ShowPopoverCompletion?)
public func showPopover(barButtonItem: UIBarButtonItem, completion: ShowPopoverCompletion?)
public func showPopoverWithNavigationController(barButtonItem: UIBarButtonItem, completion: ShowPopoverCompletion?)
public func dismissPopover(animated: Bool, completion: DismissPopoverCompletion?)
概览
UIView
class CustomView: UIView, KUIPopOverUsable {
// The default size is the size of the view, and you can override it if you want to customize it.
var contentSize: CGSize {
return Size
}
}
let view = CustomView()
view.showPopover(barButtonItem: sender)
view.dismissPopover(animated: true)
view.dismissPopover(animated: true, completion: {
})
UIViewController
class CustomViewController: UIViewController, KUIPopOverUsable {
var contentSize: CGSize {
// PopOver preferredContentSize
}
}
let customViewController = CustomViewController()
// from senderView
customViewController.showPopover(sourceView: sender, sourceRect: sender.bounds)
// from barButtonItem
customViewController.showPopover(barButtonItem: sender)
// with NavigationController
customViewController.showPopoverWithNavigationController(sourceView: sender, sourceRect: sender.bounds)
customViewController.dismissPopover(animated: true)
customViewController.dismissPopover(animated: true, completion: {
})
作者
Taeun Kim (kofktu), [email protected]
许可
KUIPopOver 在 MIT
许可下可用。更多信息请参阅 LICENSE
文件。