簡體   English   中英

如何在UIView上設置平滑的邊框顏色?

[英]How to set smooth border color on UIView?

我在視圖控制器上添加了一個UIView。最初我在UIView上設置了邊框顏色,現在它看起來可以平滑地顯示邊框。但是當通過手勢識別器縮放視圖時,邊框顏色將被像素化。

下面的初始代碼

- (id)initWithImage:(UIImage*)image delegate:(id)delegat{
    if ( (self = [super initWithImage:image]) ) {
        self.layer.masksToBounds = YES;
        self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width+1, self.frame.size.height+1);
        self.contentMode = UIViewContentModeCenter;
        ratio = image.size.height / image.size.width;
        itemType = 2;
        self.userInteractionEnabled =TRUE;
        self.delegate = delegat;
        self.layer.borderColor = [UIColor redColor].CGColor;
        self.layer.borderWidth = 4;
        scaleFactor = 1.0;
        rotateAngle = 0.0;
        fontSize = 22;
        self.contentScaleFactor = 1.0;
        if(image != nil){
            frameWidth = image.size.width;
            frameHeight = image.size.height;
        }else{
            frameWidth = self.frame.size.width;
            frameHeight = self.frame.size.height;    
        }

        [self addGestureRecognizers];
    }    
    return self;
}

在此處輸入圖片說明

這是旋轉代碼的代碼

- (void)rotatePiece:(UIRotationGestureRecognizer *)gestureRecognizer{


    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged) {
        // To undo the action : store information
        [[UIAppDelegate viewController] storeAction:CHUndoActionTypeRotate item:self];

        [gestureRecognizer view].transform = CGAffineTransformRotate([[gestureRecognizer view] transform], [gestureRecognizer rotation]);
        [gestureRecognizer setRotation:0];
    }

}

這是我在旋轉視圖時得到的

在此處輸入圖片說明

這似乎是一個很常見的問題。 您想要的是消除鋸齒的邊界。 這是一個有解決方案的帖子這是另一個

基本上,您可以使用UIImageView並在圖像周圍添加一個像素透明邊框,以便對實際邊框進行平滑處理。

暫無
暫無

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

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