8

ここで大量の質問をして申し訳ありません。私は Quartz Graphics をますますいじり始めており、興味深い効果があることを発見しましたが、それらの動作を確認するためのサンプルはあまりありません。

 view.layer.shadowPath = [UIBezierPath bezierPathWithRect:view.bounds].CGPath;

シャドウ プロパティがあります。

view.layer.shadowColor = [UIColor grayColor].CGColor;
view.layer.shadowOffset = CGSizeMake(5, 5);
view.layer.shadowPath = [UIBezierPath bezierPathWithRect:view.bounds].CGPath;
view.layer.shadowRadius = 9;

私は影を見せることができませんでした。

国境:

 view.layer.borderWidth = 1;
   view.layer.borderColor=[[UIColor whiteColor] CGColor];

iPhone に組み込まれている iOS から他にどのような効果を得ることができますか? *どのような種類のグラフィック操作機能が iOS に組み込まれているかを紹介できる包括的なデモ プロジェクトはありますか? *

透明マスキングを行うにはどうすればよいですか?

内側の影または内側の輝きを追加する方法はありますか? iOS ボタンを実際よりも「くぼんだ」ように見せる方法はありますか?

放射状グラデーションを行う方法はありますか? Adobe Illustrator のようなマルチレイ レンズ フレア エフェクトを作成する方法はありますか? 「明るくする、ディゾルブする」、またはその他のフォトショップ効果を使用してレイヤーをブレンドする方法はありますか? 画像の明るさを動的に調整する方法はありますか? 私は色相シフトを行う方法を知っています。

CALayers に適用できるレイヤー効果の種類に関するその他のヒントをいただければ幸いです。

4

3 に答える 3

12

なんて面白い偶然でしょう!最近、CoreGraphics と CoreAnimationに関するiOS ゲーム デザイン セミナーでプレゼンテーションを行い、今日、Github でいくつかのドキュメントを公開しました。

したがって、いくつかの実践的な例が必要な場合は、https ://github.com/pkluz/PKCoreTechniques のリポジトリをチェックしてください。

次の例の一部が含まれています。

  • カラーフィル

  • グラデーション塗りつぶし (線形および放射状)

  • 単純なパス

  • ベジェ曲線

  • クリッピング (標準および偶奇)

  • カスタム描画ボタンの作成

  • 簡単な翻訳

  • ヒット テスト トリガーによる翻訳

  • CoreAnimation の 3D 変換を使用した非常に原始的な「CoverFlow」。

..その他 ;-)

必要なものが見つかることを願っていますが、私が見たところ、あなたが要求したもののかなりの量をカバーするはずです.

: インタラクティブなチュートリアルとして機能する PDF もあります。

于 2012-04-30T14:05:44.223 に答える
2

これは本当に良いチュートリアルです。それは私を大いに助けてくれました。おそらくあなたにも役立つでしょう。

于 2012-04-30T13:14:41.127 に答える
1

これが、CIImageを使用した放射状グラデーション生成の実装です。グラデーションが作成されていない場合は、名前付きの画像が表示されます。それ以外の場合は、放射状のグラデーションが表示されます。

+(UIImage*)doRadialGradientFilter:(NSString*)baseImageName 
{

    CIFilter* controlsFilter  = [CIFilter filterWithName: @"CIRadialGradient" keysAndValues:
                   @"inputColor1", [CIColor colorWithRed:0.0 green:0.0
                                                    blue:0.0 alpha:0.0], @"inputColor0", [CIColor colorWithRed:0.0 green:0.0
                                                                                                          blue:0.5 alpha:0.5], @"inputRadius0", [NSNumber numberWithDouble:0.0], nil];


    CIImage *displayImage = controlsFilter.outputImage;
    UIImage *finalImage = [UIImage imageWithCIImage:displayImage];

    CIContext *context = [CIContext contextWithOptions:nil];
    if (displayImage == nil || finalImage == nil) {
        // We did not get output image. Let's display the original image itself.
        return  [UIImage imageNamed:baseImageName];
    }else {
        // We got output image. Display it.
        return  [UIImage imageWithCGImage:[context createCGImage:displayImage fromRect:displayImage.extent]];
    }

}
于 2012-05-01T15:02:42.070 に答える