別の言葉で異なるスタイルの「ラベル」を作成しようとしています。hereのようなものです。 問題は - 私が見る限りでは、UATextLayerのMonoTouchの実装では、Stringプロパティに型文字列があるため、NSAttributedStringをStringプロパティに割り当てることはできません。MonoTouchでAttributedStringを使用したCATextlayer
これは実装上のエラーですか、これを行う別の方法はありますか?
(はい、別のラベルを追加することができますが、より良い解決策がある場合は、そうではありません)。 (ミゲルからの回答に応じて)
がEDIT:代わりに「void_objc_msgSend_IntPrt」の答えのコードのGetHandlerに変更してまで「void_objc_msgSend_IntPtr」を修正した後
は、コンパイルして実行されますが、それはかなりの仕事をしていませんとにかく(私は答えとしてマークするのが少し速かった)。 エラーはスローされませんが、テキストは表示されません。
コード:
string _text="Example string";
if(_textLayer==null) {
_textLayer = new CATextLayer();
_textLayer.Frame = new RectangleF(50,698,774,50);
_textLayer.Wrapped=true;
_textLayer.ForegroundColor=UIColor.White.CGColor;
_textLayer.BackgroundColor=UIColor.Clear.CGColor;
Layer.AddSublayer(_textLayer);
}
//_textLayer.String=_text;
CTFont _font=new CTFont("MarkerFelt-Thin",48);
CTStringAttributes _attrs=new CTStringAttributes();
_attrs.Font=_font;
_attrs.ForegroundColor = UIColor.White.CGColor;
var nsa = new NSAttributedString(_text);
Messaging.void_objc_msgSend_IntPtr(
_textLayer.Handle,
Selector.GetHandle("string"),
nsa.Handle);
私はテキストを参照してください(もちろんの属性なし)_textLayer.String=_text
のコメントを解除し、その問題は層ではない場合。今の
sel_registerNameがプライベートで、別のクラスから呼び出すことができないようですが、何かが不足していますか? – Johan
...私は自分自身を見つけました:Selector.GetHandle( "string") – Johan
私はそれがうまく機能していないので、私の質問を編集しました... – Johan