国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

詳解iOS11關于導航欄問題

2019-10-21 18:44:06
字體:
來源:轉載
供稿:網友

前言

iOS11ios/238936.html">導航欄除了新加入了largeTitles和searchController兩個新特性,可能是加入largeTitles的原因其結構較iOS 10發生了些變化。

iOS11之前導航欄的navigationBarButton則直接添加在navigationBar上面

iOS11,導航欄,ios,11,導航欄問題

在iOS11之后,蘋果添加了新的類來管理,可以看到titleView直接加在_UINavigationBarContentView上,UIBarButtonItem則添加在_UIButtonBarStackView上面,而_UIButtonBarStackView則添加在_UINavigationBarContentView上面,最后添加到UINavigationBar上面,如下圖所示:

iOS11,導航欄,ios,11,導航欄問題

由于結構的變化,在iOS 11中我們自定義設置leftBarButtonItem,其點擊區域變得很小,讓人點的很焦灼,如下圖綠色區域所示:

iOS11,導航欄,ios,11,導航欄問題

具體代碼如下,設置的frame在這里并沒有什么卵用,點擊區域依然只有圖片原本的size那么大:

    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 60, 40)];    [btn setImage:imageWhite forState:UIControlStateNormal];    [btn addTarget:self action:@selector(bpBack) forControlEvents:UIControlEventTouchUpInside];    btn.backgroundColor = [UIColor greenColor];    UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:btn];    leftItem.width = 60;    self.navigationItem.leftBarButtonItem = leftItem;

為了能增加點擊區域,我們就需要增加button的size,然后就想到通過改變ContentEdgeInsets來增大button的size,

... ... btn.backgroundColor = [UIColor greenColor]; if (@available(iOS 11.0,*)) {     [btn setContentMode:UIViewContentModeScaleToFill];     [btn setContentEdgeInsets:UIEdgeInsetsMake(0, 5, 5, 20)];  } UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:btn];......

另:searchBar設置為titleview,會導致navigation的高度發生異常(ps:push到下一個界面,下個界面的view距離navigation出現了一段黑色區域)需要處理下:

  CGRect frame = CGRectMake(0, 0, 150, 44);  UISearchBar *search = [[UISearchBar alloc] initWithFrame:frame];  search.placeholder = @"搜索";  search.delegate = self;  UITextField *searchField=[search valueForKey:@"_searchField"];  searchField.backgroundColor = [UIColor groupTableViewBackgroundColor];// --- iOS 11異常處理  if(@available(iOS 11.0, *)) {    [[search.heightAnchor constraintEqualToConstant:44] setActive:YES];  }  self.navigationItem.titleView = search;

詳細資料參考:
https://stackoverflow.com/questions/45997996/ios-11-uisearchbar-in-uinavigationbar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彰化县| 蒙城县| 华安县| 黄骅市| 增城市| 宿松县| 茌平县| 东源县| 西吉县| 大兴区| 简阳市| 安义县| 万年县| 延津县| 辰溪县| 南阳市| 彰武县| 海盐县| 阿拉善盟| 兴宁市| 正安县| 沾化县| 三台县| 乡宁县| 额尔古纳市| 高台县| 广安市| 广灵县| 阳曲县| 怀安县| 河曲县| 霍邱县| 成安县| 疏勒县| 安阳市| 晋宁县| 绥化市| 资阳市| 遵义市| 乌鲁木齐县| 安阳县|