0

uibutton を使用してタイトルにテキストを表示しますが、テキストが長く、設定する場合があります

text.TitleLabel.LineBreakMode = UILineBreakMode.WordWrap; 

線が2本以上の場合、背景の高さが足りない ここに画像の説明を入力

これはボタンの私のコードです:

text = new UIButton ();
        text.Layer.CornerRadius = 5;
        text.Font = UIFont.FromName ("DIN Condensed", text.Font.PointSize);

        text.SetTitle (Original._hint, UIControlState.Normal);
        text.SizeToFit ();
        text.TitleLabel.LineBreakMode = UILineBreakMode.WordWrap; 

        var rec = new UILongPressGestureRecognizer (() => {     

            text.Frame = new CGRect ((UIApplication.SharedApplication.KeyWindow.Frame.Width / 2.0f) - (250 / 2.0f),
                this.Superview.Superview.Superview.Frame.Height / 2.0f,250, text.Frame.Height);
            Animate (0.6f, () => {
                this.Superview.Superview.Superview.AddSubview (text);
            }, () => {
                text.Layer.ZPosition = int.MaxValue;
            });

            viewToremove=text;
        });


        text.SetTitleColor (UIColor.White, UIControlState.Normal);
        text.BackgroundColor = UIColor.Black;

        TargetView.AddGestureRecognizer (rec);
4

3 に答える 3

0

あなたの問題はあなたの .SizeToFit() メソッドが原因であると思います。一般に、.SizeToFit() メソッドを UIButton またはその他のコントロールの最後の変更にする必要があります。これは、.Frame の問題と、テキストが正しく表示されないことを防ぐためです。これはおそらく UIButton の背景にも当てはまります。そう:

  • ボタンを初期化します (私は通常、幅を固定 (画面幅) に保ち、高さを 200 などの大きな数値に設定します)。
  • そのプロパティを変更します (.Title および .BackgroundColor を含む)
  • デリゲートまたはイベント ハンドラーを追加します。
  • .SizeToFit(); を使用してボタンを縮小します。

うまくいくかどうか教えてください。幸運を!

愛と敬意、ビョルン

于 2015-03-13T14:27:42.060 に答える
0

物事をより明確にするために:

  1. 画像をストレッチ可能にします。これは、画像アセット ディレクトリでスライスを表示することで簡単に実行できますこれにより、ボタンがコーナーでも同じ側面を維持することが保証されます。
  2. ボタンインセットを使用してください。IBで実行できますが インセット 、UIButtonにジェスチャ認識機能を追加することは避けますが、とにかく機能すると思います。
于 2015-02-18T08:35:51.653 に答える