2015-04-30 4 views
0

У меня есть метод, который вызывается, когда нажата кнопка (флажок), которая должна изменить фоновое изображение кнопки. У меня есть NSLog, который говорит мне, что метод был вызван, но изображение никогда не изменяется. Я не могу понять, почему.Флажок не проверяется

Спасибо за помощь!

let checkedImage = UIImage(named: "checkedBox") 
let uncheckedImage = UIImage(named: "uncheckedBox") 

var isChecked:Bool = false 

func checkboxClicked(sender: UIButton!) { 
    if sender == self { 
     if isChecked == true { 
      NSLog("Change background image - checked") 
      sender.setBackgroundImage(checkedImage, forState: .Normal) 
      isChecked == false 
     } else { 
      NSLog("Change background image - unchecked") 
      sender.setBackgroundImage(uncheckedImage, forState: .Normal) 
      isChecked == true 
     } 
    } 
} 
+0

Установили ли вы точку останова в начале метода, чтобы определить, как далеко оно доходит? Это было бы неплохо для начала. http://jeffreysambells.com/2014/01/14/using-breakpoints-in-xcode – kbpontius

+0

Где находится код checkboxClicked (отправитель: UIButton!), находится ли он в коде контроллера - если да, то ваша проблема строка, в которой вы проверяете, является ли отправитель == self, потому что сам будет контроллером, а не видом ... Мне нужно больше контекста, чтобы действительно помочь вам – user3435374

+0

@ user3435374 Мои извинения, checkboxClicked метод находится в отдельном классе Checkbox, который с кнопками флажка. Как и в Identity Inspector, я выбрал флажок класса из раскрывающегося списка. – Brejuro

ответ

0

Вы всегда можете просто установить разные изображения для разных состояний.

let checkedImage = UIImage(named: "checkedBox") 
let uncheckedImage = UIImage(named: "uncheckedBox") 

checkbox.setBackgroundImage(checkedImage, forState: .Selected); 
checkbox.setBackgroundImage(uncheckedImage, forState: .Normal); 

var isChecked:Bool = false 

func checkboxClicked(sender: UIButton!) { 
    if sender == self { 
     sender.selected = isChecked; 
     isChecked = !isChecked; 
    } 
} 

Таким образом, вы можете даже установить изображение, когда она будет выделена, чтобы добавить немного вспышки щелчка флажка.

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