簡體   English   中英

使UIView的特定角落變圓

[英]Make specific corners of UIView round

我做了一些研究,我發現,沒有簡單的方法制作UIView圓的右上角和左上角,對嗎?

PS。 該代碼使所有四個角變圓。 我不要

  #import <QuartzCore/QuartzCore.h>

 self.layer.cornerRadius = 5;
 self.layer.masksToBounds = YES;

您可以使用以下代碼段進行操作:

// Set top right & left corners
[self setMaskTo:yourView byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight];

編輯

對不起,我忘了這個

- (void)setMaskTo:(UIView*)view byRoundingCorners:(UIRectCorner)corners
{
    UIBezierPath *rounded = [UIBezierPath bezierPathWithRoundedRect:view.bounds
                                                  byRoundingCorners:corners
                                                        cornerRadii:CGSizeMake(8.0, 8.0)];
    CAShapeLayer *shape = [[CAShapeLayer alloc] init];
    [shape setPath:rounded.CGPath];    
    view.layer.mask = shape;
}

PS:正如我在評論中所說,如果在顯示UITableViewCell單元格時使用諸如此類的東西,我發現使用背景圖像始終是一個更好的選擇,因為這種繪圖內容總是會影響性能。

我曾經嘗試過UIView的擴展,但它對我不起作用,因為它在繪制單元格時引起了問題

我現在通過兩個步驟獲得了更好,更輕松的解決方案,效果很好:)

1)一行代碼(Swift 2.0)-纏繞視圖的所有4個角:

YourView.layer.cornerRadius = 10

2)在情節提要中添加一個,您添加了1個帶有正角的視圖(不需要圓角)並根據需要調整約束:請注意,小的正角視圖應位於主視圖后面。 這就是情節提要中的外觀

在這里您可以看到小視圖所需的約束

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM