2012-06-29 53 views
1

我在視圖控制器上添加了一個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; 
} 

enter image description here

這裏是旋轉代碼代碼

- (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]; 
    } 

} 

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

enter image description here

回答

1

這是一個看似很常見的問題。你想要的是邊界是反鋸齒的。 Here is one post與解決方案和here is another

基本上,您可以使用UIImageView並在圖像周圍添加一個像素透明邊框,以便實際邊框可以反鋸齒。

+0

我正在使用jpeg圖像,所以我應該如何做邊界抗鋸齒。 我使用UIView而不是UIImageView。 我應該如何在UIView中添加一個像素透明邊框。 – StalinPusparaj

相關問題