問題タブ [cagradientlayer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 可能な限り単純なユースケースで、CAGradientLayerが「exc_bad_access」でクラッシュする
次のコードのみを含むプレーンなUIViewサブクラス:
EXC_BAD_ACCESSを使用してランタイムを強制終了します(いいえ、要求する前にゾンビはありません)。
また、CAGradientLayerが過剰にリリースされることはありません。レイヤーに複数のフローティング保持を配置しても効果はありません。
(ちなみに、これまで行ってきたどのプロジェクトでも、CAGradientLayerが実際に機能するのを見たことがありません。呪われていると思います:)。アニメーション化されたグラデーションが必要な場合を除いて、これは使用しません。AppleのCGGradientクラスはconst配列のみをサポートしているため、アニメーションコードはひどくバグが発生しやすくなります)
ios - CAGradientLayerを別のCALayerのマスクとして適用するにはどうすればよいですか?
CALayerを持つビューがあります。CAGradientLayerを作成し、それをそのビューのCALayerのマスクとして適用しても、何も起こりません。なんで?
ビューの-initWithFrame:でこれを行います:
交換した場合
と
次に、グラデーションが表示されます。黒から白までです。
トリックは何ですか?
iphone - UIView 透明グラデーション
iOS で任意の UIView を指定した場合、Core Graphics (CAGradientLayer が思い浮かびます) を使用して「前景透明」グラデーションを適用する方法はありますか?
背景が UIColor よりも複雑なため、標準の CAGradientLayer は使用できません。また、サブビューが親の垂直スクロールビューに沿ってスクロールされると背景が変化するため、PNG をオーバーレイすることもできません (画像を参照)。
エレガントではないフォールバックがあります。親スクロールビューがスクロールされると、uiview でサブビューをクリップし、事前にレンダリングされた背景のグラデーション png を移動します。
ios - カスタム CAGradientLayer がアニメーション化しない
CAGradientLayer のカスタム クラスを作成しました (放射状グラデーション オプションを追加)。動作しますが、色をアニメーション化できない理由がわかりません。
これが私のコードです。
アニメーションは単純な CABasicAnimation で、toValue を色付きの新しい配列に設定します。
iphone - CAGradientLayerのアニメーション
私が使用している...
...ボタンで線形塗りつぶしを実行します。問題は、(UIView beginAnimationsを使用して)フレームサイズをアニメーション化すると、CAGradientLayerが消え、フレームの残りの部分と一緒にアニメーション化されないことです。これが機能しない理由はありますか?
線形フェードを行うためのより良い方法はありますか?
objective-c - CAGradientLayer 型 -- ポイントは何ですか?
iOS CAGradientLayer docsによると、type プロパティには単一の有効な値 kCAGradientLayerAxial しかありません。これはたまたまデフォルトでもあります。drawLayer: inContext をオーバーライドせずにラジアル CAGradientLayer を実装したいと考えており、kCAGradientLayerRadial に似たものを見つけたいと思っていたので、このプロパティの目的は私にとって謎です。どんなイルミネーションも大歓迎です。
iphone - CALayer がデバイスで背景色をレンダリングしない、シミュレーターで動作する
レイヤーからカスタム ボタンを作成しました。でたくさんのレイヤーを作成しますinit
。それらを変更*するまで、すべてが期待どおりに機能します。問題が発生するのは実際のデバイスのみであり、シミュレーターではコードが期待どおりに動作します。
needsDisplay と needsLayout を に設定して、レイヤーを強制的にレンダリングしようとしましたYES
。
シミュレーター
デバイス
テスト
iOS 5.1 と 4.2 でテストしましたが、結果は同じでした。シミュレーターのバージョン 4.1、4.2、および 5.1 で同じように動作するようです
objective-c - CAGradientLayerを追加し、UIViewのdeallocでこれを取得します:[CALayerリリース]:割り当て解除されたインスタンスに送信されるメッセージ
あっちこっち、
カスタムUIViewがあります。このビューはアクティビティインジケーターとして機能しますが、UIActivityIndicatorViewの上のラベルとして機能します。initで、CAGradientLayerを追加します。それを割り当てて初期化し、UIViewレイヤープロパティのサブレイヤーとしてインデックス0に挿入します。私のdeallocメソッドが呼び出されたときに、コンソールに次のメッセージが表示されました。
私のコード:
誰でもアイデアがあります。グラデーションレイヤーの割り当てと初期化を行っているので、それを解放する責任があります。いくつかのivarを割り当てて初期化し、割り当てることができるはずです。おそらく、retainを使用してプロパティを作成する必要があります。
ありがとう、
iphone - CALayer setCornerRadius はまだ白い角を下に残します
MKMapViewの上に重ねることができるラベルが付いた単純なグラデーションを作成しようとしています。SO を調べたところ、UIView で drawRect をオーバーライドするのではなく、CAGradientLayer を使用できることがわかりました。やってみようと思いました。私のviewDidLoadでは、これを行います:
左上隅と右上隅の下にこの白い部分があることを除いて、それは正しい道にあります。これには理由がありますか?UIViewsで以前に起こったので、レイヤーのbackgroundColorなどを設定しなかったためだと思いましたが、そうではないようです。
ありがとう!
objective-c - グラデーションオーバーレイ付きのUIPageViewController?
本のようなアプリを作成する必要があり、UIPageViewController を使用したいと考えています。(iPad、2 ページの水平レイアウト (UIPageViewControllerSpineLocationMid)。
画面をより魅力的にするために、コントローラーのビューを画像または CAGradientLayer でオーバーレイして背骨を見えるようにしたいと考えています。
pageViewController にサブビューを追加してみましたが、アニメーション遷移が始まると削除されるようです。
誰かがアイデアを持っていますか?