91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解iOS11關于導航欄問題

發布時間:2020-09-02 16:15:25 來源:腳本之家 閱讀:413 作者:h_wen 欄目:移動開發

前言

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

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

詳解iOS11關于導航欄問題

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

詳解iOS11關于導航欄問題

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

詳解iOS11關于導航欄問題

具體代碼如下,設置的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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长乐市| 杨浦区| 济源市| 安庆市| 始兴县| 即墨市| 永吉县| 革吉县| 柏乡县| 云龙县| 古蔺县| 深泽县| 诸城市| 鸡西市| 巴中市| 永寿县| 灌阳县| 灯塔市| 马关县| 璧山县| 金堂县| 蒙山县| 山东省| 陈巴尔虎旗| 拜泉县| 大石桥市| 新泰市| 商水县| 邹平县| 浦江县| 长治县| 得荣县| 古田县| 离岛区| 郴州市| 鄂伦春自治旗| 东至县| 阿勒泰市| 五河县| 中山市| 枣阳市|