Easy to use PopOver in iOS
KUIPopOver
- Easy to use PopOver in iOS (iPhone, iPad)
Requirements
Installation
CocoaPods
KUIPopOver is available through CocoaPods. To install it, simply add the following line to your Podfile:pod 'KUIPopOver'
Carthage
For iOS 8+ projects with Carthagegithub "Kofktu/KUIPopOver"
Usage
Before
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?)
At a Glance
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: { })
Authors
Taeun Kim (kofktu),
License
KUIPopOver is available under the
license. See the file for more info.