如何使用Monotouch更改UIButton HighLight Color?

时间:2011-05-05 09:09:58

标签: c# xamarin.ios uibutton

如何使用Monotouch更改UIButton HighLight Color?

3 个答案:

答案 0 :(得分:3)

没有直接的方法可以做到这一点。您必须子类化UIButton并在突出显示时自己绘制它。这是一个简单的例子:

public class CustomButton : UIButton
{

    public CustomButton(RectangleF frame)
    {

        this.Frame = frame;
        this.AddObserver(this, new NSString("Highlighted"), NSKeyValueObservingOptions.New, IntPtr.Zero);

    }

    public override void ObserveValue (NSString keyPath, NSObject ofObject, NSDictionary change, IntPtr context)
    {
        if (keyPath.ToString() == "Highlighted")
        {
            this.SetNeedsDisplay();
        }
    }

    public override void Draw (RectangleF rect)
    {
        base.Draw (rect);

        if (this.Highlighted)
        {
            // Draw for highlighted

        } else
        {

            // Draw for normal

        }
    }

}

我已经从这个问题中翻译了这个问题,其中有一个Objective-C示例:Here

答案 1 :(得分:1)

一种可能的方法是,您需要为按钮创建突出显示的图像,然后使用:

btn.SetImage(UIImage.FromBundle("Images/btnHighlighted.png"), UIControlState.Highlighted);

答案 2 :(得分:0)

我在之前的回复帖子中已经这样做了所以检查我已经实施UIButton HighLigh Color

的链接