Tamam, zaten kabul edilmiş bir cevap var ama bence bunu yapmanın daha iyi bir yolu var, sadece görünümünüzden biraz daha büyük yeni bir katmana sahip olmanız ve bunu görünüm katmanının sınırlarına (aslında varsayılan davranış). İşte örnek kod:
CALayer * externalBorder = [CALayer layer];
externalBorder.frame = CGRectMake(-1, -1, myView.frame.size.width+2, myView.frame.size.height+2);
externalBorder.borderColor = [UIColor blackColor].CGColor;
externalBorder.borderWidth = 1.0;
[myView.layer addSublayer:externalBorder];
myView.layer.masksToBounds = NO;
Tabi bu eğer bordürünüzün 1 birim genişliğinde olmasını istiyorsanız, daha fazlasını istiyorsanız borderWidth
katman ve çerçevesini buna göre uyarlamalısınız . Bu, CALayer
a'dan daha hafif olduğu için ikinci bir görünüm kullanmaktan daha iyidir UIView
ve çerçevesini değiştirmenize gerek yoktur myView
, örneğin myView
birUIImageView
Not: Benim için sonuç simülatörde mükemmel değildi (katman tam olarak doğru konumda değildi, bu nedenle katman bazen bir tarafta daha kalındı) ama tam olarak gerçek cihazda istenen şeydi.
DÜZENLE
Aslında içinde konuşmak sorun NB I simülatörün ekran azaltılmış çünkü kesinlikle hiçbir sorun yoktur, normal boyutuna sadece,
Umarım yardımcı olur