2011-05-05 60 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

相關問題