2014-07-15 53 views
1

您好我正在通過使用下面的一段代碼在我的應用程序中製作customUIButtons。UIButton在觸摸後保留髮光

+ (NSArray *) createButtonItemNormalImage:(UIImage *)normalImage 
         highlightImage:(UIImage *)highlightImage 
         disabledImage:(UIImage *)disabledImage 
         touchUpSelector:(SEL)selector 
           target:(id)target 
{ 

// HighlightImage is not used. Highlight is shown using iOS glow 
UIButton *uiButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
uiButton.bounds = CGRectMake(0, 
          0, 
          normalImage.size.width, 
          normalImage.size.height); 
[uiButton setImage:normalImage 
      forState:UIControlStateNormal]; 

if (disabledImage) 
{ 
    [uiButton setImage:disabledImage 
       forState:UIControlStateDisabled]; 
} 
[uiButton addTarget:target 
      action:selector 
    forControlEvents:UIControlEventTouchUpInside]; 

uiButton.showsTouchWhenHighlighted = YES; 

UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:uiButton]; 

return [NSArray arrayWithObjects:buttonItem, uiButton, nil]; 
} 

我已經使用上述功能作出取消按鈕。取消按鈕使用戶從一個屏幕到另一個屏幕。問題是當我回到第一個屏幕時,取消按鈕仍然發光。我之前也看到過這個問題,但是打電話給[self.view setNeedsLayout]用來解決它。

爲什麼會發生這種情況,以及解決這個問題的正確方法是什麼? 謝謝!

+0

uiButton.showsTouchWhenHighlighted = YES;至uiButton.showsTouchWhenHighlighted = NO; –

+0

@DarshanKunjadiya我想讓按鈕只在觸摸時發光。設置uiButton.showsTouchWhenHighlighted = NO將使按鈕不發光。問題在於,即使沒有被觸摸,它也會發光。 – shshnk

+0

我在視圖上只有六個按鈕中的一個出現同樣的問題。所有六個配置完全相同,但由於某種原因,其中只有一個未能在觸摸後「失效」。非常令人沮喪。我幾次重新生成了違規按鈕,但似乎沒有解決問題。 –

回答

0

要以不那麼標準的方式解決此問題,我現在在進入第一個屏幕時將所有按鈕的突出顯示狀態設置爲no。我使用myButton.highlighted = NO;。但是文檔中提到了highlighted屬性。

如果控件高亮顯示則指定YES;否則不。默認情況下,控件不會突出顯示。 UIControl自動設置和清除此狀態時,觸摸進入和退出期間跟蹤和觸摸了。

它在我的case.I不會發生這樣很想知道它背後的原因和解決的標準方法是