2014-12-24 8 views
2

Я пытаюсь добавить панель инструментов в нижней части таблицы TableViewController. Когда я использую этот код:Добавление панели инструментов в нижней части моего стола.

override func viewDidLoad() { 
    let toolbar: UIToolbar = UIToolbar() 
    let checkButton = [UIBarButtonItem]() 
    toolbar.frame = CGRectMake(0, self.view.frame.size.height - 46, self.view.frame.size.width, 48) 
    toolbar.sizeToFit() 
    toolbar.setItems(checkButton, animated: true) 
    toolbar.backgroundColor = UIColor.redColor() 
    self.view.addSubview(toolbar) 
} 

я получаю это как мой результат:

enter image description here

Мои вопросы: 1) Почему панель прозрачна? 2) Почему у него нет кнопки?

Любые предложения о том, как действовать, будут оценены.

EDIT:

Теперь я изменил код к следующему:

func checkedPress(){ 

    println("saywhat") 

} 

override func viewDidLoad() { 
    let toolbar: UIToolbar = UIToolbar() 
    let checkButton = [UIBarButtonItem(title: "Done", style: .Done, target: self, action: "checkedPress")] 
    toolbar.frame = CGRectMake(0, self.view.frame.size.height - 46, self.view.frame.size.width, 48) 
    toolbar.sizeToFit() 
    toolbar.setItems(checkButton, animated: true) 
    toolbar.backgroundColor = UIColor.redColor() 
    self.view.addSubview(toolbar) 
} 

и она работает, несмотря на эту ошибку: enter image description here

, как вы можете видеть, панель инструментов следует за остальную часть таблицы, когда она прокручивается, что не должно происходить.

Опять же, любые предложения будут оценены.

+2

2. Вы должны установить название или тип для вашего UIBarButtonItem. –

+0

1. Я предполагаю, что причина такова: перед панелью находится табличное представление, а цвет фона этого табличного представления - ClearColor (прозрачный). –

+0

'let checkButton = [UIBarButtonItem]()' устанавливает 'checkButton' в пустой массив, содержащий элементы типа' UIBarButtonItem'. – vacawama

ответ

0

С UITableView наследуется от UIScrollView, вам необходимо переопределить метод scrollViewDidScrollMethod.

Внутри вашего класса вы можете использовать этот код.

var toolbar: UIToolbar = UIToolbar()

override func viewDidLoad() { 
    let checkButton = [UIBarButtonItem]() 
    toolbar.frame = CGRectMake(0, self.view.frame.size.height - 46, self.view.frame.size.width, 48) 
    toolbar.sizeToFit() 
    toolbar.setItems(checkButton, animated: true) 
    toolbar.backgroundColor = UIColor.redColor() 
    self.view.addSubview(toolbar) 
} 

override func scrollViewDidScroll(scrollView: UIScrollView) { 
    var frame:CGRect = self.toolbar.frame 
    frame.origin.y = scrollView.contentOffset.y + self.tableView.frame.size.height - self.toolbar.frame.size.height 
    self.toolbar.frame = frame 

    self.view .bringSubviewToFront(self.toolbar) 

} 

`

Смежные вопросы