2014-05-07 2 views
-1

Я пытаюсь настроить изменение на UIView, когда оно коснулось. Он является подклассом UIView и имеет свойство BOOL, которое называется «isSelected».Изменение BOOL при касании UIView

При создании представления мы устанавливаем его в ДА:

self.isSelected = YES; 

Когда вид прикосновении следующие трассы:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 

    if (self.isSelected) { 
     self.isSelected = NO; 
    } else if (!self.isSelected) { 
     self.isSelected = YES; 
    } 

Проблема, кажется, что IsSelected, кажется, всегда был рассматривается как НЕТ, а не ДА. Каков наилучший способ сделать это.

EDIT: Выйти

-(void)setIsSelected:(BOOL)isSelected { 
    NSLog(@"isselected chaned to: %@",isSelected ? @"Yes" : @"No"); 
} 
+2

FYI - вы можете заменить эти 4 строки на 1: 'self.iSSelected =! Self.isSelected;'. Это приведет к переключению значения. – rmaddy

+0

Спасибо @rmaddy - Я добавил EDIT, который показывает, что я выхожу из изменений в isSelected. Я изменил эти строки на ваше предложение. Я замечаю, что изменение всегда отображается как ДА. Что-то не так? Мне нужно, чтобы это было правильно зарегистрировано, поэтому я могу вызвать другой метод обновления, когда он изменится на YES/NO из этого представления напрямую или когда VC они находятся при обновлении isSelected для них тоже. Спасибо – StuartM

+1

Если вы собираетесь переопределить метод setIsSelected:, это поможет установить значение в методе. – rmaddy

ответ

2

Ваш переопределены setIsSelected: метод никогда не обновляет значение. Вы хотите:

-(void)setIsSelected:(BOOL)isSelected { 
    _isSelected = isSelected; 
    NSLog(@"isselected chaned to: %@",isSelected ? @"Yes" : @"No"); 
} 
Смежные вопросы