2013-04-09 4 views
1

Меня интересует , как разработчики iOS могут программно создавать границы/границы/границы между двумя UIViews лучше. Когда я бросаю взгляды на доски объявлений, результирующие связи между ними действительно острые. Например, рассмотрят скриншот ниже:Как сделать границу между двумя UIViews проще на глаза (программно)?

My app

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

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

app store

  • Граница вокруг кнопки детали есть какое-то внутренняя тень
  • Горизонтальная линия между верхней и нижние панели, кажется, какой-то эффект тени
  • Там очень тонкая граница/тень вокруг экрана

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

Вот еще один пример: Adobe Ideas для iPad. Мне очень нравится, как у их кнопок и панелей есть тонкие границы вокруг них, которые делают переходы действительно хорошими на iPad с дисплеем сетчатки.

enter image description here

+0

Как сделать это «лучше выглядеть», вероятно, не очень хороший вопрос. Пожалуйста, будьте как можно более конкретными. Вы спрашиваете, как рисовать тени? или границы? или выбрать красивые цвета?(последнее не очень плохо подходит для StackOverflow) –

+0

Вы считали, что используете градиент ??? –

+0

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

ответ

0

Все эти навыки известны как Quartz 2D, яблоко имеет свободный ручной онлайн. Просмотров и анимации еще 2, которые вы хотите прочитать. У меня есть, как минимум, 6 часов чтения. После этого вы не будете тратить время на учебники, экономя время.

0

Я нашел один способ сделать изображение более естественным - назначить полупрозрачную рамку вокруг вида. Для смешивания на белом фоне добавьте больше белого в цвет ниже, для смешивания в темноте добавьте меньше белого. В результате полупрозрачная граница шириной 1 пиксель делает границу между двумя резко контрастирующими цветами менее интенсивной.

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

#import <QuartzCore/QuartzCore.h> 

view.layer.borderColor =[UIColor colorWithWhite:0.7 alpha:0.7].CGColor; 
view.layer.borderWidth = 1; 
Смежные вопросы