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

您是否尝试过使用 9patch 可绘制对象作为背景图像?这些专为您不确定内容长度并要求您的背景图像拉伸/收缩以适应的情况而设计。更多信息在这里

于 2015-03-13T14:34:50.540 回答
0

为了使事情更清楚:

  1. 使您的图像可拉伸,这可以通过在此处显示切片在图像资产目录中轻松完成,这将保证您的按钮在角落也将保持相同的方面
  2. 使用按钮插图,你可以在 IB 中做到这一点,而 插图 不是我会避免使用向 UIButton 添加手势识别器,但我认为它无论如何都会起作用。
于 2015-02-18T08:35:51.653 回答