14

だから、私はいくつかの UILabels と UITextViews をセルに持っています。テーブルのスクロールが少し遅くなったので、iOS シミュレーターとインストゥルメントで利用できる「カラー ブレンディング レイヤー」ユーティリティを試しました。ブレンドされていてスクロールが遅い原因となっているレイヤーが赤で表示されます。

すべての要素がブレンドされていたので、UILabels (セルと同じ) に白い背景を配置すると、UILabels は問題ありません (以前は背景として clearColor がありました)。

私はUITextViewsで同じことをしました.白い背景を選択しましたが、それらはまだブレンディングレイヤーとして画面に表示されています(赤で色付けされています)。

すべての UITextView 構成はインターフェイス ビルダーで行われます。すべてのオプションを試してみましたが、それでも赤で表示されます。

レイヤーがブレンドされないように、UITextViews に対して何をする必要がありますか?

前もって感謝します!

PD: 申し訳ありませんが、キャプチャを含めることはできません

4

2 に答える 2

20

私もこの問題に苦労していました。私はUITableViewを持っていますが、iPhoneではうまくスクロールしていましたが、iPadでは狂ったように震えていました。インストゥルメントでオンにしColor blending layersましたが、あなたが言ったように、表示されて効果がopaque = YES;ありbackgroundColor = [UIColor whiteColor];ません。

Bob も正しいです。UILabels の方がパフォーマンスが優れています。ただし、私の実装は除外パスに依存しています。これは、TextKit スタックが公開されているため、UITextView でのみ使用できます。UILabel だけを使用することはできなかったので、必死になってこれを試したところ、UITextViews の赤が消えました。

for (UIView *subview in textView.subviews) {
    subview.backgroundColor = theme.post.backgroundColor;
}

私はこれが古い質問であることを知っていますが、これをデバッグするために 1 日の大部分を費やしてきました。他の人が役に立つことを願っています。

于 2015-01-05T16:52:50.457 に答える
7

UITextView は、スクロール可能でカスタム テキスト書式設定をサポートするより高度なビューであるため、「ブレンドしない」ように設定できない場合があります。他のビューではチェックopaqueボックスをオンにする必要がありますが、この場合に機能するかどうかは疑問です.

代わりに UILabel を使用することをお勧めします。ユーザーがフィールドを編集する必要がある場合は UITextView に置き換えることができますが、スクロール中に UILabel を使用すると速度が大幅に向上します。

于 2013-08-16T20:27:09.590 に答える