Совместимость с iOS 5. Часть 2

В другом приложении, в котором я участвовал, а именно iPif, я поставил на экран загрузки списка пифов элемент UIActivityIndicator. Я не знаю, чем я руководствовался тогда, но я поставил его на белый фон UITableView со свойствами Large White Activity Indicator. Но в iOS 4 все выглядело прекрасно. Реально все выглядело как серый индикатор активности на белом фоне, поэтому я не заметил ничего подозрительного. Однако установив программу на iOS 5, я увидел, что индикатор пропал, и пользователь больше не имеет возможности знать идет закачка списка или нет. Я начал разбираться в вопросе, и когда узнал в чем дело, то стал практически прыгать от радости. Все дело в том, что Apple наконец сделал возможность присваивать цвет этому индикатору. Теперь он может быть хоть зеленый, хоть красный и хоть серобуромалиновый. Но если цвет не задан, то в таких местах, где белое на белом — его теперь действительно не видно. Что же надо теперь сделать, чтобы решить проблему. Например, мы можем задать в iOS 5 серый цвет индикатора, но тогда при запуске iOS 4 наше приложение упадет, так как в 4-ой версии этого нет. Многие программисты начинают выискивать версию iOS, на которой сейчас работает человек и вызывать методы в зависимости от номера версии. Apple выступает категорически против этого. Для этого есть очень простой метод: мы проверяем отвечает ли наш объект на setColor, если да — то это iOS 5 и выше, и мы присваиваем нужный нам цвет. Если же не отвечает, то оставляем все как есть. Вот пример кода:


if ([loading respondToSelector:@selector(setColor:)]) {
    [loading setColor:[UIColor lightGrayColor]];
}

Все, теперь мой UIActivityIndicator прекрасно отображается на всех версиях.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s