Я создаю UIDatePicker за пределами экрана и при нажатии кнопки я хочу, чтобы он скользил по экрану (снизу). Чтобы дать ему достаточно места, я хочу, чтобы UITableView (внутри UITableViewController) сокращался по оси y.Shrink UITableView -> Черный фон
Это вид работ, но сокращение 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.
}
}
Для этого вы должны использовать UIViewController, чтобы представление таблицы и средство выбора даты являлись подзонами для self.view контроллера. В UITableViewController представление таблицы представляет собой self.view контроллера. – rdelmar
Вы должны менять 'contentInsets' вашего вида таблицы вместо того, чтобы изменять его размер. –