2

UIImageView を回転させる必要があります。

UIImageView *img = [[UIImageView alloc] init];
img.layer.borderWidth = 3.0;
img.layer.borderColor = UIColorFromRGB(0xffffff).CGColor;
img.layer.shadowColor = UIColorFromRGB(0x000000).CGColor;
CATransform3D transform = CATransform3DMakeRotation ([Helper degreesToRadians:(5)], 1, 1, 1);
img.layer.shadowRadius  = 2.0;
img.layer.shouldRasterize = YES;

問題は、境界線がまったく滑らかでないことです。

シミュレーターのスクリーンショット

4

3 に答える 3

3

画像の周りに透明な境界線 (1px の場合もあります) を追加してみてください。このリンクを参照してください。そのページのセクションを確認UIImage+Alphaしてください。

于 2011-11-27T12:19:17.643 に答える
2

この問題に対する答えのほとんどは、1px の透明な境界線を追加することだと思いますが、UIImageView 自体に境界線があり、それを回転させると境界線が滑らかでない場合、UIImageView の周りに境界線を使用していない場合にのみ機能します。私はまだその問題を解決する方法を見つけようとしています。

この問題を修正するために私がしたことは次のとおりです

 UIImage *thumbnail = [photo thumbnailImage:thumbnailSize.width 
                           transparentBorder:2 
                                cornerRadius:0 
                        interpolationQuality:kCGInterpolationHigh];

  CGPoint randomPoint = [self getRandomOriginPoint];

  UIImageView *thumbnailView = [[UIImageView alloc] initWithFrame:CGRectMake(10.0, 10.0, thumbnail.size.width, thumbnail.size.height)];

  [thumbnailView.layer setBorderWidth:2];
  [self setContentMode:UIViewContentModeCenter];
  [thumbnailView.layer setBorderColor:[UIColor whiteColor].CGColor];
  [thumbnailView.layer setShadowOffset:CGSizeMake(-3.0, 3.0)];
  [thumbnailView.layer setShadowRadius:3.0];
  [thumbnailView.layer setShadowOpacity:1.0];
  thumbnailView.layer.shouldRasterize = YES;

hereのUIImage+Resize.h を使用して、コードでサムネイル画像を取得したので、これを使用すると、画像を任意の角度で回転させた後でも、境界線が完全にきれいに見えます!

于 2011-12-31T10:59:29.540 に答える