1

私はiosアプリケーションを構築しています。私のアプリケーションには、とりわけ ImageView を含むビューがあります。サブビューを追加して、イメージ ビューの周囲に境界線を作成しました。各サブビューには独自の値があります (5,10,15,10)

ユーザーがスーパー ビューを移動、回転、スケーリングできるようにします。現在、すべてのスケールにより、境界ビューも変更されます。内側の画像の周りの境界線を、同じ元の縮尺なしのサイズのままにしておきたいです。

スクリーンショットでわかるように、2 つの UIView があります。どちらも同じ影の境界線を持っています (コードを参照してください)。私の質問は、どうすればその影ではなくビューだけを拡大縮小できるかということです。

    view.layer.MasksToBounds = false;
    view.layer.ShadowColor = [[UIColor alloc] initWithRed:0 green:0 blue:0 alpha:0.5].CGColor;
    view.layer.ShadowOpacity = 0.5f;
    view.layer.shadowRadius = 1.0f;
    view.layer.ShadowOffset = CGSizeMake(0, 2.5f);
    UIBezierPath * depthShadowPath = [UIBezierPath bezierPath ];
    [depthShadowPath moveToPoint:CGPointMake( -border , -border ) ];
    [depthShadowPath addLineToPoint:CGPointMake( view.frame.size.width + border , -border ) ];
    [depthShadowPath addLineToPoint:CGPointMake( view.frame.size.width + border , view.frame.size.height + border) ];
    [depthShadowPath addLineToPoint:CGPointMake( -border , view.frame.size.height + border ) ];
    [depthShadowPath addLineToPoint:CGPointMake( -border , -border) ];
    [view.layer setShadowPath:[depthShadowPath CGPath ] ];

ここに画像の説明を入力

これはどのように行うことができますか?

4

1 に答える 1

0

ビューは再描画されないかもしれませんが、メモリ内で拡大縮小されているように見えます。設定してみるか、メッセージview.contentMode = UIViewContentModeRedrawを送信して手動で再描画を強制してください。[view setNeedsDisplay]

于 2012-05-27T21:42:49.837 に答える