我在屏幕外创建一个UIDatePicker,当按下一个按钮时,我希望它滑入屏幕(从下面)。 为了给它足够的位置,我希望UITableView(在UITableViewController里面)在y轴上缩小。
它有点工作,但UITableView的缩小显示黑色背景,因此不显示UIDatePicker。我该如何解决这个问题?
看起来像这样:
import UIKit
class jSONTableViewController: UITableViewController {
@IBAction func viewDatePicker(sender: UIButton) {
// Create DatePicker
let datePicker = UIDatePicker()
datePicker.center.y = self.view.bounds.height+100
datePicker.backgroundColor = UIColor.whiteColor()
datePicker.datePickerMode = UIDatePickerMode.Date
self.view.insertSubview(datePicker, aboveSubview: self.view)
// Animate View
UIView.animateWithDuration(0.5, delay: 0, options: .CurveEaseInOut, animations: { () -> Void in
let heightOfDatepicker = datePicker.frame.height
datePicker.center.y = self.view.frame.height-(heightOfDatepicker)
self.tableView.frame = CGRectMake( self.tableView.frame.origin.x, self.tableView.frame.origin.x, self.tableView.frame.size.width, self.tableView.frame.height-heightOfDatepicker)
}, completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
答案 0 :(得分:0)
您正在使用UITableViewController,其中超级视图是表视图。因此,当您调整表格视图的大小时,您还会重新显示显示窗口背景的超级视图。
您可以创建UIViewController并将表视图添加为子视图,您也需要符合UITableViewDelegate和UITableViewDataSource。
答案 1 :(得分:0)
我认为你最好的选择是使用第一响应者从底部调出一个选择器。大部分都是为你完成的,你只需要做一些布线。这相当于键盘的工作方式,但使用了选择器和可选按钮。
今天在这里讨论如何做到最好:Add buttons to UIPickerView - Swift 1.2
这有一些快捷的代码,你可以解除它们的使用。