)この現象の理由は検索されましたが見つかりませんでした。CALayerボーダーがサブビューより上に表示されています(Zオーダー関連、
私は画像が設定されているUIButtonを持っています。ボタンの表示方法は次のとおりです。これは意図したボタンのデザインだけフォトショップであることに注意してください:
基本的に、それは白のボーダーと少し周囲の影の正方形カスタムUIButtonがあります。右上隅には、プログラムでサブビューとして追加される「X」マークがあります。
実際のアプリ内のボタンのスクリーンショットです。この時点で、私は唯一のサブビューとして、影やXマークを追加しました:
どのように、私はここにそれがどのように見えるかで、白のボーダーを追加しようとすると:
白い枠線がXマークサブレイヤの上に表示されているようです。どうしてか分かりません。ここで
は、私が使用していたコードです:境界線がdeleteMarkサブビューの上に表示されている理由
// selectedPhotoButton is the UIButton with UIImage set earlier
// At this point, I am adding in the shadow
[selectedPhotoButton layer] setShadowColor:[[UIColor lightGrayColor] CGColor]];
[[selectedPhotoButton layer] setShadowOffset: CGSizeMake(1.0f, 1.0f)];
[[selectedPhotoButton layer] setShadowRadius:0.5f];
[[selectedPhotoButton layer] setShadowOpacity:1.0f];
// Now add the white border
[[selectedPhotoButton layer] setBorderColor:[[UIColor whiteColor] CGColor]];
[[selectedPhotoButton layer] setBorderWidth:2.0];
// Now add the X mark subview
UIImage *deleteImage = [UIImage imageNamed:@"nocheck_photo.png"];
UIImageView *deleteMark = [[UIImageView alloc] initWithFrame:CGRectMake(53, -5, 27, 27)];
deleteMark.contentMode = UIViewContentModeScaleAspectFit;
[deleteMark setImage:deleteImage];
[selectedPhotoButton addSubview:deleteMark];
[deleteMark release];
私は理解していません。意図した効果を得る方法はありますか?
ありがとうございました! CALayer
上のAppleのドキュメントから
境界線を設定する代わりに、描画してみてください。 – tipycalFlow
@tipycalFlowなぜですか? –
@returntrueこれはかなり古くなっていますが、私は描画命令を制御するように頼んでいたと思います。 – tipycalFlow