1

画像のあるUIImageViewがあります。このinitWithFrame:(CGRect)frameように見えます:

#define BORDER_WIDTH_SELECTION 3
#define SELECTED_SCALE_VALUE 1.3

    self.layer.masksToBounds = NO;
    smallFrame_ = frame;
    float newX = self.center.x - ((self.frame.size.width*SELECTED_SCALE_VALUE)*0.5);
    float newY = self.center.y - ((self.frame.size.height*SELECTED_SCALE_VALUE)*0.5);
    bigFrame_ = CGRectMake(newX, newY, self.frame.size.width*SELECTED_SCALE_VALUE, self.frame.size.height*SELECTED_SCALE_VALUE);
    self.layer.borderWidth = BORDER_WIDTH_SELECTION;

その後、これをトリガーします

- (void) setSelected {
    [self makeThumbnailBig];
    self.layer.borderColor = [UIColor colorWithRed:178.0/255.0 green:19.0/255.0 blue:50.0/255.0 alpha:1.0].CGColor;
}

- (void)makeThumbnailBig
{    
    [UIView animateWithDuration:0.2 animations:^{
        self.frame = bigFrame_;
    }];
}

正しくスケーリングされImageView、赤い境界線が描画されますが、その後、ピークimageImageView は左側の境界線の下から約1ピクセルまたは2ピクセルだけピークになります。画像を削除しましたが、これで問題がわかります。

ここに画像の説明を入力してください

何か案は?

4

1 に答える 1

4

あなたのコードには行があります

self.layer.masksToBounds = NO;

質問によると、YES代わりにすべきです

余分なピクセルについて:

分割ごとに画像サイズを準備している場合、魔法の画像の高解像度の最適化の問題に直面する可能性があります。まず、フラクタル部分をUIImageViewディメンションに追加します。ポイントとピクセルを参照してください

于 2012-10-19T16:50:36.583 に答える