CAShapeLayer と UIBezierPath を使用して 5 つの異なる形状のいずれかを描画できる UIView サブクラス クラスの外観プロキシに「tintColor」プロパティを設定しました。クラスメソッドを使用して、必要な形状の UIView を返しています。
+(CustomView*)viewForType:(CustomViewType)type
{
CustomView* iV = [[CustomView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
switch (type)
{
case CustomViewTypeOne:
{
iV.shapeLayer = [CAShapeLayer layerWithPath:[self typeOneBezierPath]
color:[UIColor whiteColor]];
break;
}
...
return iV;
}
アピアランス プロキシで設定した「tintColor」プロパティをこのメソッドに渡すにはどうすればよいですか?
編集:返されるすべてのビューが同じであるとは限らないことに注意してください。1 つのシェイプ レイヤーを含むものもあれば、複数のレイヤーを含み、マスキングを使用するものもあります。