特定の条件下では角を丸くし、他の条件下では通常の正方形にするビューが必要です。
ただし、最初に設定した後にビューのlayer.maskを再設定しようとすると、視覚的には変化がありません。
まず、layoutSubviews メソッドでコーナーを設定します
- (void)layoutSubviews
{
// Create the mask image by calling the function
UIImage *mask = MTDContextCreateRoundedMask( self.bounds, 10.0, 0.0, 10.0, 0.0 );
// Create a new layer that will work as a mask
CALayer *layerMask = [CALayer layer];
layerMask.frame = self.bounds;
// Put the mask image as content of the layer
layerMask.contents = (id)mask.CGImage;
// set the mask layer as mask of the view layer
self.layer.mask = layerMask;
}
次に、条件が満たされると、別のメソッドを呼び出します
- (void)resetCorners {
// Create the mask image by calling the function
UIImage *mask = MTDContextCreateRoundedMask( self.bounds, 0.0, 0.0, 0.0, 0.0 );
// Create a new layer that will work as a mask
CALayer *layerMask = [CALayer layer];
layerMask.frame = self.bounds;
// Put the mask image as content of the layer
layerMask.contents = (id)mask.CGImage;
// set the mask layer as mask of the view layer
self.layer.mask = layerMask;
}
ただし、視覚的な変化はありません。私は何をする必要がありますか?