Хорошие тени в виде таблицы iOS (как приложение с часами) - PullRequest
1 голос
/ 29 июля 2011

Я довольно новичок в кодировании iOS и, похоже, не могу найти хорошую учебную версию, в которой рассказывается, как эффективно добавлять тени в табличное представление.

Я пробовал (потом еще несколько случайных): http://cocoawithlove.com/2009/08/adding-shadow-effects-to-uitableview.html У меня не сработало, выдало ошибки.

http://www.iphonedevsdk.com/forum/iphone-sdk-development/5939-safari-like-uiwebview-uiscrollview-uitableview-beyond-bounds-gradient.html Пробовал основную графику, которая работала отлично, но очень медленно на iPhone. Это просто не быстро. Я также пробовал изображения, но это выглядело плохо.

Есть ли хорошая версия, которая выглядит как в приложении часов по умолчанию? Должен быть какой-то «стандарт».

Ответы [ 4 ]

0 голосов
/ 12 сентября 2012

Мне удалось получить внутреннюю тень на виде таблицы с помощью небольшого трюка.

Я поместил UIView размером 1px X 320px в верхней части представления таблицы, а затем наложил тень вокруг этого представления следующим образом:

self.shadowWrapper.layer.shadowColor = [[UIColor blackColor] CGColor];
self.shadowWrapper.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
self.shadowWrapper.layer.shadowOpacity = .90f;
self.shadowWrapper.layer.shadowRadius = 3.0f;

В моем случае мой табличный вид находился на полпути вниз по странице, поэтому я использовал другой вид, чтобы сидеть над «оболочкой для теней» и скрывать тень на верхней стороне моей тени. Это оставило тень, сидящую поверх моего вида таблицы, создавая видимость внутренней тени.

0 голосов
/ 29 июля 2011

Это описано в рецепте 20 «Добавление теней границ для табличных представлений» книги «Рецепты iOS» Мэтта Дранса и Пола Уоррена. Рецепт добавляет представления теневого изображения в подкласс UITableView, которые при необходимости перемещаются в layoutSubviews.

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

0 голосов
/ 02 марта 2012

Если вы не используете верхний и нижний колонтитулы таблицы в представлении таблицы, вот очень простое решение:

  1. Добавьте два градиентных вида (изображения или подклассы UIView с некоторым градиентным рисунком) как tableHeaderView и tableFooterView. Может быть сделано в Интерфейсном Разработчике.
  2. Установить в качестве содержимого вставки табличного представления для верха и низа отрицательную высоту представлений градиента.

Примеры кода для этого решения можно найти здесь: http://rowboatrevolution.com/2009/06/drop-shadows-in-uitableview/

0 голосов
/ 29 июля 2011

Реального стандарта не существует, но CAGradientLayer в большинстве случаев является правильным подходом. С какими ошибками вы столкнулись?

...