2011-05-05 57 views

回答

1

一种可能的方式做到这一点,你需要为按钮创建一个高亮显示的图像,然后使用:

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

我想改变高亮颜色,不是一个背景image.Is有一个解决方案吗? – Noro 2011-05-05 09:57:10

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

相关问题