0

このコードは

_gradientLayer.locations = @[@0.00f, @0.01f, @0.95f, @1.00f];

私はそれが配列を宣言していることを知っていますが、それについてもっと読むための参照はどこにありますか?

4

2 に答える 2

4

これは、Obj-cに新しく追加されたリテラルです。

Appleコンパイラリリースのユーザーは、AppleLLVMコンパイラ4.0以降でこれらの機能を使用できます。オープンソースのLLVM.orgコンパイラリリースのユーザーは、clangv3.1以降でこれらの機能を使用できます。

XCode4.4以降を実行しているコンパイラで見つかります。

ここで完全なリファレンスを見つけてください。

于 2013-03-26T06:24:50.790 に答える
2

_gradientLayerはCAGradientレイヤーです。グラデーションレイヤーにグラデーションを追加するには、場所とカラー配列を定義する必要があります。

CAGradientLayer *layer = [CAGradientLayer layer];
layer.colors = [NSArray arrayWithObjects:
                (id)[[UIColor darkKinepolisColor] CGColor],
                (id)[[UIColor lightKinepolisColor] CGColor],
                (id)[[UIColor lightKinepolisColor] CGColor],
                (id)[[UIColor darkKinepolisColor] CGColor],
                nil];
layer.locations = [NSArray arrayWithObjects:
                   [NSNumber numberWithFloat:0.00],
                   [NSNumber numberWithFloat:0.01],
                   [NSNumber numberWithFloat:0.95],
                   [NSNumber numberWithFloat:1.0],
                   nil];

ここでは次のように使用されます

_gradientLayer.locations = @[@0.00f, @0.01f, @0.95f, @1.00f];
_gradientLayer.colors = @[(id)[[UIColor darkKinepolisColor] CGColor],
            (id)[[UIColor lightKinepolisColor] CGColor],
            (id)[[UIColor lightKinepolisColor] CGColor],
            (id)[[UIColor darkKinepolisColor] CGColor]];

配列の古い方法は新しい注釈に置き換えられます

于 2013-03-26T06:21:24.477 に答える