This repository was archived by the owner on Sep 14, 2024. It is now read-only.
forked from tottokotkd/PopUpPickerView
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPopUpPickerViewBase.swift
78 lines (61 loc) · 2.32 KB
/
PopUpPickerViewBase.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//
// PopUpPickerViewBase.swift
// AITravel-iOS
//
// Created by 村田 佑介 on 2016/06/27.
// Copyright © 2016年 Best10, Inc. All rights reserved.
//
import UIKit
class PopUpPickerViewBase: UIView {
var pickerToolbar: UIToolbar!
var toolbarItems = [UIBarButtonItem]()
lazy var doneButtonItem: UIBarButtonItem = {
return UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: #selector(self.endPicker))
}()
// MARK: Initializer
init() {
super.init(frame: CGRect.zero)
initFunc()
}
override init(frame: CGRect) {
super.init(frame: frame)
initFunc()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initFunc()
}
private func initFunc() {
let screenSize = UIScreen.mainScreen().bounds.size
self.backgroundColor = UIColor.blackColor()
pickerToolbar = UIToolbar()
pickerToolbar.translucent = true
self.bounds = CGRectMake(0, 0, screenSize.width, 260)
self.frame = CGRectMake(0, parentViewHeight(), screenSize.width, 260)
pickerToolbar.bounds = CGRectMake(0, 0, screenSize.width, 44)
pickerToolbar.frame = CGRectMake(0, 0, screenSize.width, 44)
let space = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
space.width = 12
let cancelItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Cancel, target: self, action: #selector(PopUpPickerView.cancelPicker))
let flexSpaceItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: self, action: nil)
toolbarItems = [space, cancelItem, flexSpaceItem, doneButtonItem, space]
pickerToolbar.setItems(toolbarItems, animated: false)
self.addSubview(pickerToolbar)
}
// MARK: Actions
func showPicker() {
}
func cancelPicker() {
}
func endPicker() {
}
func hidePicker() {
let screenSize = UIScreen.mainScreen().bounds.size
UIView.animateWithDuration(0.2) {
self.frame = CGRectMake(0, self.parentViewHeight(), screenSize.width, 260.0)
}
}
func parentViewHeight() -> CGFloat {
return superview?.frame.height ?? UIScreen.mainScreen().bounds.size.height
}
}