如何使用Monotouch更改UIButton HighLight Color?
答案 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
的链接