我正在構建的應用程序有很多自定義UIButtons鋪設在相當精確的佈局圖像的頂部。按鈕,控制圖像和標籤,你有什麼,但有一個清晰的定製UIButton坐在上面來處理水龍頭。突出顯示一個自定義UIButton
我的客戶昨天說:「我希望當你點擊它時突出顯示」。沒關係,它立即推動一個新的uinavigationcontroller視圖...它不閃爍,所以他很困惑。 Oy公司。
這是我所做的解決它。我不喜歡它,但它是我做了什麼:
我的子類的UIButton(命名爲FlashingUIButton)。
出於某種原因,我不能在高亮顯示的控制模式下使用背景圖像進行配置。它似乎從未觸及過「突出顯示」的狀態。不知道這是爲什麼。
所以不是我寫的:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self setBackgroundImage:[UIImage imageNamed:@"grey_screen"] forState:UIControlStateNormal];
[self performSelector:@selector(resetImage) withObject:nil afterDelay:0.2];
[super touchesBegan:touches withEvent:event];
}
-(void)resetImage
{
[self setBackgroundImage:nil forState:UIControlStateNormal];
}
這愉快地奠定了我的grey_screen.png(30%不透明的黑盒子)在按鈕上時,它的挖掘,並用一秒鐘後高興emptyness 0.2替換它。
這是好的,但它意味着我必須要經過我的許多碎粒和UIButtons改變我的所有按鈕FlashingUIButtons。這不是世界的盡頭,但我真的很希望把它作爲一個UIButton類別來解決,並且一舉成名。
任何建議比這更好的方法嗎?
您可能必須使用它的方法,喜歡了setBackgroundImage,僅僅是因爲在執行,我宣佈它作爲ID前beganButton之前把(UIButton的*)。我不確定如果沒有這樣做,它會起作用。另一種方法是將它聲明爲一個UIView而不是id,因爲你知道它至少總是一個UIView。無論哪種方式,你都可以玩弄它。 – Omar 2011-01-07 16:50:33