2016-09-19 3 views
1

Так что я хотел наложить 5 пикселов на мой UIView сверху, слева и справа от него. После долгих проб и ошибок, этот код, кажется, делает трюк для меня:iOS - Разница между смещением и вставкой при настройке тени UIView?

self.layer.shadowColor = [[UIColor purpleColor] CGColor]; 
self.layer.shadowOffset = CGSizeMake(0.0f,-5.0f); 
self.layer.shadowOpacity = 1.0f; 
self.layer.shadowRadius = 0.0f; 
CGRect shadowRect = CGRectInset(self.bounds, -10, -5); // inset top/bottom 
self.layer.shadowPath = [[UIBezierPath bezierPathWithRect:shadowRect] CGPath]; 

Это дает мне эти результаты, что кажется правильным:

enter image description here

Поскольку это произошло с большим количеством проб и ошибка, я все еще не совсем понимаю, как работают вставки и смещения. Я смотрел в Интернете, но все определения такие общие (например, смещение - это объем пространства, по которому что-то смещается ... что?).

Может ли кто-нибудь объяснить мне разницу между вставками и смещениями при рисовании теней? Я хочу ЗНАТЬ, как это работает, поэтому в следующий раз мне не придется тратить столько времени на проб и ошибок. Благодаря!

ответ

2

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

Вставка - это размер тени относительно объекта. Поэтому, если у вас есть вставка (-10, -10), тень будет на 10 пикселей шире и на 10 пикселей выше объекта. Обратите внимание, что отрицательная вставка делает тень большей. Положительная вставка уменьшает размер тени.

+0

Большое вам спасибо за очищение от этого! – Rafi

Смежные вопросы