問題タブ [drawrect]
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.
uiview - 描画された「フレーム」にクリップされた UIView CGGradient
UILabels (または必要に応じて UILabel を上に置く UIView) のより洗練された描画を作成しようとしています。ユーザーがiPhoneの向きを変更したときにこれを自動的にサイズ変更したいので、これをサブクラスのdrawRect関数に実装しようとしています。可能であれば、パターン イメージの必要性を省略して、これをすべてコードで調整できるようにしたいと考えています。
この件に関する以前の投稿からいくつかのヒントを得ました。
iPhone の UIView と UILabels のグラデーションと UIView の背景をサブクラス化なしのグラデーションにする
残念ながら、グラデーションとカスタム描画を組み合わせたかったので、どちらも目標を達成できませんでした。CGGradient を描画中の線枠 (丸みを帯びた角に表示されます) でクリップしたいのですが、これを達成できません。
別の方法は、CAGradientLayer を使用することです。これは非常にうまく機能しているように見えますが、回転時にフレームのサイズを変更する必要があり、どのように試しても、グラデーション レイヤーがテキストの上に描画されているように見えます。
そのための私の質問は2つあります
- 以下のコードを変更して、描画された「フレーム」にグラデーション クリップを作成するにはどうすればよいですか
- CAGradientLayer を UILabel のテキストの後ろに描画するにはどうすればよいですか (または、CAGradientLayer を背景として UILabel の後ろに UIView を配置する必要がありますか)
これが私の drawrect 関数です:
iphone - 独自のUIButtonを作成するUIViewサブクラス
UIViewをサブクラス化したので、そこに線を引くことができます。このUIViewには、線が引かれた後にdrawRectが呼び出すメソッドとして作成することにしたボタンがたくさんあります。動作しますが、ボタンの一部しかレンダリングされない場合があります。ボタンの作成を削除し、代わりにサブクラス化されたUIViews親にUIButtonを追加すると、正常に機能します。
drawRectメソッドにサブビューを追加するようなことをするのは大したことではありませんか、それともUIViewですべて一緒に行うべきではありませんか?
iphone - setSelected:animated のカスタム UITableViewCell とアニメーション:
UITableViewCell
drawRect: メソッドで描画を行うサブクラスがあります。背景を含む四角形全体がカスタム描画されます。スクロールを非常にスムーズに保ちながら、非常に複雑なセルを取得できました。
私の問題: [table deselectRowAtIndexPath:path animated:YES];
Apple の HIG に準拠するために、ビューが表示されるたびに呼び出します。ただし、アニメーションは発生しません。もちろん、透明な(サブビューで作成された)カスタムビュー(Appleの背景が下に表示されるため)がある場合は機能しました。今はそうではありません。
私の drawRect: は、「アニメーション時間」の途中で一度呼び出されます。これは、セルの強調表示されたプロパティを 1 から 0 にアニメーション化し、0.5 を下回ると 0 にスナップするために発生すると思います。
このトランジションをアニメーション化するにはどうすればよいですか? 私の推測では、通常の beginAnimations: などを使用して、セル オブジェクトのカスタム浮動小数点フィールドを 1 から 0drawRect:
にアニメーション化することになります。
更新 これをほぼ機能させることができました。setSelected:animated: を次のようにオーバーライドしました。
テーブルビューが画面上にある場合、これは完全に機能します。しかし、ナビゲーション (戻る) からテーブル ビューに戻ると、選択された状態から選択されていない状態にフェードするのではなく、非表示から選択されていない状態にフェードします。何が原因でしょうか?
iphone - ViewController の「[self setNeedsDisplay:YES]」でアプリがクラッシュする
ViewController で [self setNeedsDisplay:YES] を実行しようとすると、認識されないセレクターがインスタンスに送信されてクラッシュします...何か間違っていますか?
私は使用しています:
iphone - iOS 3.0 互換の UIView にアウトライン シャドウを追加する
2 つの UIViewControllers A と B があり、それらは AppDelegate のサブビューとして追加され、B は A の上にあります。
B の UIButton がタップされると、B は次のコードで左にスライドします。
右端に 20px のドロップ シャドウが必要ですがBView.view.layer.shadow....
、3.2/4.0+ のみであるため、シャドウ プロパティを使用できません。そして、アニメーションのパフォーマンスはひどいもので、スライドは非常に遅れています (影がなければ流暢です)。
カスタムUIViewを使用してdrawRectで魔法を行うことを考えていますが、これは可能ですか、それともビューの境界内でのみ描画できますか?
皆さんの何人かが私を助けてくれることを願っています。
乾杯
iphone - drawRectを使用せずに既存のUIViewに線/点を描画しますか?
折れ線グラフを作成しました。次に、画面をタップしたときにこのチャートにポイントを表示する必要があります。最良の方法は何でしょうか?メソッドを再度呼び出しdrawRect
て、マークされたポイントでチャート全体を描画する必要がありますか?
チャート上の透明なレイヤーのようなものを考えていUIView
ます。別の透明を作成しUIView
てチャートの位置に配置できますか?
objective-c - iPhone SDK の UIView の更新についてサポートが必要
シンプルなドリルダウン ナビゲーション アプリがあります。詳細ビューでは、ナビゲーション項目で選択された行に応じて、サイズが 20x20 の UIImage をいくつか描画しています。これらの画像は、行が選択されたときに詳細ビューの上にサブビューとして描画されます。「詳細ビュー」に到達したら、いくつかのボタンを設定しました。ボタンを押すと、小さな画像が再配置されます。このためには、以前の画像をクリアして、ビュー内の別の場所で再描画する必要があります。[MyView changeImagePositionwithPosnumber:"number selected by buttons"] のようなメソッドがあります。既存の画像の上に描画されるため、ボタンが押されたときにこのメソッドを渡すことはできません。このメソッドを渡すためにビューを更新するにはどうすればよいですか? これには draw rect を実装する必要がありますか? drawrect がよくわからず、実装方法がわかりません。つまり、詳細ビューから離れたときにナビゲーションコントローラーが行うことは何でもしたいので、ビューを更新して新しい画像を描くことができます。これに関するヘルプは大歓迎です。私はまだ初心者です。
objective-c - drawRect が呼び出されていない
画像を四角形で描画する必要があるため、drawRect メソッドを使用しています。呼び出されていないことがわかりました。出力には空白の画面しか表示されません。MAC OS を使用しており、Iphone OS でアプリをテストする必要があります。 3 +。誰でも私の問題を解決できますか。私のコードは次のとおりです。
どこが間違っていたのかわからない:(
iphone - MKPolygonView で単純なテキストを描画する
こんにちは、MKPolygonView でテキストを描画しようとしています。MKPolygonView のサブクラスを作成し、MKMapView に追加しました。ポリゴンは正しく表示されますが、テキストが表示されません。誰でも私を助けることができますか?
iphone - drawRect: および setNeedsDisplay メソッドを使用したカスタム セル
私のアプリには、セルの描画を変更できる3つの設定があります。
デフォルトでは、テーブル ビューのセルにはオブジェクトの名前とコストが表示されます。これら 3 つの設定を変更すると、ユーザーはコストの代わりに説明またはリンクを表示することを選択できます。
私は多くのコードを書きましたが、今では、私のアプリはセルの描画を終了せずに変更できます...
私の問題は、追加された新しいオブジェクトに対してのみ描画が変更され、古いオブジェクトは変更されないことです!
アプリを終了せずに古いセルの描画も変更するにはどうすればよいですか?
これは私のセルのコードです (私は setNeedsDisplay と drawRect メソッドを使用しています):
ご清聴ありがとうございました!
マシュー