عنوان چقدر عجیب شده، اگر خودم این مطلب رو نمی‌نوشتم عمرا میتونستم با این عنوان بفهمم که داخل مطلب چی قراره گفته بشه. شاید گفتن انگلیسی اون بهتر باشه `UIView border(corner) radius & border bottom`

اگر بخوایم یک `UIView` داشته باشیم که گوشه‌های آن تیز نباشه چیکار باید انجام بدیم؟

اگر بخوایم همه گوشه‌ها رو باهم و به یک اندازه خم کنیم جواب خیلی ساده‌است، کافیه یک زیرکلاس از `UIView` (یا هر کلاس `UI` دیگری) بسازیم ودرون سازنده یا هرجای مناسب دیگه اون `layer.cornerRadius` رو تغییر بدیم.

Objective-C

``` - (void)initialise { //round self.layer.cornerRadius = 4.0f; } ```

Swift

``` override func awakeFromNib() { super.awakeFromNib() self.layer.cornerRadius = 4 } ```

اگر بخوایم برای همین `UIView` یک border از پایین ایجاد کنیم، چه باید بکنیم؟

برای رسین به این هدف کاری که باید انجام بدیم اینه که یک `CALayer` ایجاد کنیم و رنگ border اون رو به رنگ دلخواه در بیاریم و هر بلای دیگه دوست داشتیم سرش بیاریم و دست آخر اون رو به لایه اصلی `UIView` خودمون اضافه کنید (بعنوان فرزند).

Objective-C

``` -(void)initialise;{ //add border UIColor * color = [UIColor grey]; CGFloat borderWidth = 2; CALayer *border = [CALayer layer]; border.borderColor = color.CGColor; border.frame = CGRectMake(-borderWidth, -borderWidth, self.frame.size.width+borderWidth, self.frame.size.height+borderWidth); border.borderWidth = borderWidth; border.cornerRadius = 4.f; [self.layer addSublayer:border]; self.layer.masksToBounds = YES;
//round
self.layer.cornerRadius  = 4.0f;

}

<h2 style="direction:ltr;text-align:left">Swift</h2>

override func awakeFromNib() {
super.awakeFromNib()
// border bottom
let border = CALayer(); // if swift < 2 then use var
let borderWidth:CGFloat = 4; // if swift < 2 then use var
border.borderColor = UIColor.greyColor().CGColor;
border.frame = CGRectMake(-borderWidth, -borderWidth, self.frame.size.width+borderWidth, self.frame.size.height+borderWidth);
border.borderWidth = borderWidth;
border.cornerRadius = 4;
self.layer.addSublayer(border)
self.layer.masksToBounds = true;

// corner
self.layer.cornerRadius = 4

}