Разница между свойствами UIBarButtonItem - PullRequest
10 голосов
/ 13 июня 2011

Какая разница между:

myBarButtonItem.enabled = NO;

и

myBarButtonItem.userInteractionEnabled = NO;

Кнопка становится серой каждый раз?

Ответы [ 3 ]

12 голосов
/ 13 июня 2011

Из документации Apple, uibarbuttonitem не обладает свойством userInteractionEnabled. Так как он наследуется от ссылки на класс UIBarItem, он также не имеет свойства userInteractionEnabled.

А также, если вы используете эту строку myBarButtonItem.userInteractionEnabled = NO; Ваше приложение будет зависать .

Если вы не хотите, чтобы ваша кнопка была нажата, используйте это: - myBarButtonItem.enabled = NO; Также см. Документацию Apple.

Для обычной кнопки: -

myButton.userInteractionEnabled = NO; не окажет никакого влияния на ваше изображение, и вы также не можете нажать на него.

myButton.enabled = NO; приведет к появлению тени на изображении вашей кнопки, и вы также не сможете нажать ее.

5 голосов
/ 13 июня 2011

Я прочитал документацию, и вот мои выводы.

UIButton наследует от UIControl логическое свойство enabled

Булево значение, которое определяет, является липриемник включен.

Укажите ДА, чтобы включить управление;в противном случае укажите NO, чтобы отключить его.Значением по умолчанию является ДА.Если включено состояние «Нет», элемент управления игнорирует события касания, и подклассы могут рисовать по-разному.

UIControl наследуется от UIView логического свойства userInteractionEnabled:

Логическое значение, определяющее, игнорируются ли пользовательские события и удаляются ли они из очереди событий.

При значении NO пользовательские события, такие как касание и клавиатура, предназначенные для просмотра, игнорируются и удаляются из очереди событий.,При значении YES события доставляются в представление в обычном режиме.Значением по умолчанию является ДА.

Из этого я заключаю,

  • button.userInteractionEnabled = NO означает, что кнопка выглядит нормально, но не реагирует на прикосновения (из UIView наследование).

  • button.enabled = NO означает, что кнопка затенена и не реагирует на прикосновения (из наследования UIControl).

1 голос
/ 13 июня 2011

UIBarButtonItem не имеет свойства с именем userInteractionEnabled, только UIView, и его подклассы имеют это свойство.

Итак, вкратце,

myBarButtonItem.userInteractionEnabled = NO;

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

Установка свойства enabled на NO, однако будет серым цветом кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...