0

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 つのシェイプ レイヤーを含むものもあれば、複数のレイヤーを含み、マスキングを使用するものもあります。

4

1 に答える 1

0

このメソッドにティント カラー プロパティを渡す必要がありますか? クラスの外観に色合いを設定すると、次のCustomViewようにして簡単に色合いを元に戻すことができます。

UIColor *tintColor = [[CustomView appearance] tintColor];
于 2013-10-02T01:43:59.987 に答える