簡體   English   中英

UISearchbar取消按鈕自定義圖像

[英]UISearchbar cancel button custom image

我使用下面的代碼為搜索欄和搜索字段設置了背景圖像。 我正在使用Xcode5 DP2和ios 7。

[[UISearchBar appearance] setSearchFieldBackgroundImage:[UIImage imageNamed:@"fieldBg"] forState:UIControlStateNormal];
[[UISearchBar appearance] setBackgroundImage:[UIImage imageNamed:@"searchBarBg"]];

這段代碼工作正常。 但我也想自定義取消按鈕圖像。 為此,我在viewWillAppear和searchBarTextDidBeginEditing中使用了以下代碼。 它在加載時第一次工作。

for (UIView *searchbuttons in _searchBar.subviews)
{
    if ([searchbuttons isKindOfClass:[UIButton class]])
    {
        UIButton *cancelButton = (UIButton*)searchbuttons;
        cancelButton.enabled = YES;
        [cancelButton setBackgroundImage:[UIImage imageNamed:@"cancelImage"] forState:UIControlStateNormal];
        break;
    }
}

如果取消按鈕單擊一次,則自定義圖像將不會出現在那里。 我記錄了_searchBar.subviews並得到了結果

po [_searchBar subviews]
<__NSArrayM 0x210b1120>(
<UISearchBarBackground: 0x1fd6ff80; frame = (0 0; 768 44); userInteractionEnabled = NO; layer = <CALayer: 0x1fdafaf0>>,
<UISearchBarTextField: 0x1fd6f2f0; frame = (5 -3; 758 50); text = ''; clipsToBounds = YES; opaque = NO; gestureRecognizers = <NSArray: 0x1fdc10b0>; layer = <CALayer: 0x1fd6f480>>
)

據我所知,取消按鈕不在我正在檢查的子視圖下。 我在所有可能的委托方法中嘗試了上述代碼,但無法解決問題。

你可以使用[self setShowsCancelButton:NO animated:NO]; layoutSubviews函數中,將自定義UIButton添加到您喜歡的位置。 您只需要為取消按鈕的功能編寫代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM