2015-07-22 113 views
2

我正在對應用程序進行簡單的更改以添加UISearchBar組件,但在UI中出現了一些相當奇怪的佈局怪癖。使用圖片說明也許更容易。UISearchBar佈局問題(iOS 8)

這裏的組件看起來像當它沒有焦點是什麼:

UISearchBar default

注意,圖標和佔位符文本都太遠了,而且佔位符文本是太遠了。而這裏的時候我在現場挖掘會發生什麼:現在

enter image description here

的圖標是在正確的位置,但佔位符文本是現在太靠左,並與圖標重疊。是什麼賦予了?

當該領域失去焦點時,它將恢復到其原始佈局。除非我先輸入一些文字,在這種情況下,它會保留第二個佈局。

我使用的是成立UISearchBar沒有做什麼特別的代碼:

UIView* containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)]; 
    containerView.backgroundColor = UI_COLOR_NAV_TITLEBAR; 

    searchField = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, containerView.frame.size.width - 40, 44)]; 
    searchField.placeholder = @"search all items"; 
    searchField.searchBarStyle = UISearchBarStyleMinimal; 

    searchField.showsBookmarkButton = NO; 
    searchField.showsCancelButton = NO; 
    searchField.showsScopeBar = NO; 
    searchField.showsSearchResultsButton = NO; 

    UITextField* textSearchField = [searchField valueForKey:@"_searchField"]; 
    searchField.backgroundColor = [UIColor clearColor]; 
    textSearchField.textColor = UI_COLOR_NAV_TEXT; 

    searchField.delegate = self; 
    [containerView addSubview:searchField]; 

    //... 

我想UISearchBar總是出現在第二個例子中不與文本字段重疊,除了明顯圖標。有沒有簡單的解決方案,我忽略了這個問題?

+0

您是否找到解決方案? – someone

回答

0

嘗試以下的searchField代碼..

[searchField setLeftViewMode:UITextFieldViewModeNever]; 
[searchField setRightViewMode:UITextFieldViewModeNever]; 
[searchField setBackground:[UIImage imageNamed:@"searchicon.png"]]; 

最後是顯示在左邊的那個圖標,使用圖像。

+0

這有助於圖標問題,但不會停止文本字段在焦點/不重點上移動。 – aroth

+0

我不認爲有可能從uisearchbar刪除圖層動畫。如果您嘗試創建自定義搜索欄,這將很容易。 –