ios 改變searchBar的高度

最近手機(jī)更新了iOS11系統(tǒng),把項(xiàng)目在手機(jī)上運(yùn)行之后發(fā)現(xiàn)原來正常大小的searchBar高度明顯增加了鳍怨,放在導(dǎo)航欄上更為明顯齿穗。就想著要把searchBar的高度改一下涉波,在網(wǎng)上搜了一下全都一樣客扎,而且還是用swift寫的祟峦,所以就想著按照那個(gè)方法寫一個(gè)OC版本的(參考文章地址:www.cnblogs.com/theDesertIslandOutOfTheWorld/p/5015653.html)。

iOS11系統(tǒng)的searchBar

iOS10.3系統(tǒng)的searchBar

具體的UISearchBar的中子控件及其布局可以參考原文章的分析徙鱼,現(xiàn)在直接上代碼

新建UISearchBar的子類宅楞,增加成員屬性contentInset,用來調(diào)整UISearchBarTextField距離父控件的邊距。contentInset的setter方法

#pragma mark - setter method
- (void)setContentInset:(UIEdgeInsets)contentInset {
   
   _contentInset.top = contentInset.top;
   _contentInset.bottom = contentInset.bottom;
   _contentInset.left = contentInset.left;
   _contentInset.right = contentInset.right;
   
   self.isChangeFrame = YES;
   [self layoutSubviews];
}
- (void)layoutSubviews {
    
    [super layoutSubviews];
    for (UIView *subView in self.subviews[0].subviews) {
        
        if ([subView isKindOfClass:[UIImageView class]]) {
            
            //移除UISearchBarBackground
            [subView removeFromSuperview];
        }
        if ([subView isKindOfClass:[UITextField class]]) {
            
            CGFloat height = self.bounds.size.height;
            CGFloat width = self.bounds.size.width;
            
            if (_isChangeFrame) {
                //說明contentInset已經(jīng)被賦值
                // 根據(jù)contentInset改變UISearchBarTextField的布局
                subView.frame = CGRectMake(_contentInset.left, _contentInset.top, width - 2 * _contentInset.left, height - 2 * _contentInset.top);
            } else {
                
                // contentSet未被賦值
                // 設(shè)置UISearchBar中UISearchBarTextField的默認(rèn)邊距
                CGFloat top = (height - 28.0) / 2.0;
                CGFloat bottom = top;
                CGFloat left = 8.0;
                CGFloat right = left;
                _contentInset = UIEdgeInsetsMake(top, left, bottom, right);
            }
        }
    }
}

使用

- (MySelfSearchBar *)addSearchBarWithFrame:(CGRect)frame {
    
    self.definesPresentationContext = YES;
    
    MySelfSearchBar *searchBar = [[MySelfSearchBar alloc]initWithFrame:frame];
    searchBar.delegate = self;
    searchBar.searchBarStyle = UISearchBarStyleDefault;
    searchBar.placeholder = @"查詢";
    [searchBar setShowsCancelButton:NO];
    [searchBar setTintColor:KGenericColor];
    
    if (self.isChangeSearchBarFrame || IS_IOS_11) {
        
        CGFloat height = searchBar.bounds.size.height;
        CGFloat top = (height - 20.0) / 2.0;
        CGFloat bottom = top;
        
        searchBar.contentInset = UIEdgeInsetsMake(top, 0, bottom, 0);
    }
    
    return searchBar;
}

加載到導(dǎo)航欄上

    MySelfSearchBar *searchBar = [self addSearchBarWithFrame:CGRectMake(0, 0, kScreenWidth - 2 * 44 - 2 * 15, 44)];
    UIView *wrapView = [[UIView alloc] initWithFrame:searchBar.frame];
    [wrapView addSubview:searchBar];
    self.navigationItem.titleView = wrapView;

通過新增屬性contentInset來改變searchBar的高度
運(yùn)行結(jié)果

改變與父控件的邊距后效果

demo地址:https://github.com/DreamTravelingLight/searchBarDemo.git
以前的源碼沒了厌衙,就簡單的寫了一下距淫,明白了原理可以根據(jù)自己的項(xiàng)目再寫一個(gè)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市迅箩,隨后出現(xiàn)的幾起案子溉愁,更是在濱河造成了極大的恐慌,老刑警劉巖饲趋,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異撤蟆,居然都是意外死亡奕塑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門家肯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來龄砰,“玉大人,你說我怎么就攤上這事讨衣』慌铮” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵反镇,是天一觀的道長固蚤。 經(jīng)常有香客問我,道長歹茶,這世上最難降的妖魔是什么夕玩? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮惊豺,結(jié)果婚禮上燎孟,老公的妹妹穿的比我還像新娘。我一直安慰自己尸昧,他們只是感情好揩页,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烹俗,像睡著了一般爆侣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上衷蜓,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天累提,我揣著相機(jī)與錄音,去河邊找鬼磁浇。 笑死斋陪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播无虚,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缔赠,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了友题?” 一聲冷哼從身側(cè)響起嗤堰,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎度宦,沒想到半個(gè)月后踢匣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡戈抄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年离唬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片划鸽。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡输莺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出裸诽,到底是詐尸還是另有隱情嫂用,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布丈冬,位于F島的核電站嘱函,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏殷蛇。R本人自食惡果不足惜实夹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粒梦。 院中可真熱鬧亮航,春花似錦、人聲如沸匀们。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泄朴。三九已至重抖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祖灰,已是汗流浹背钟沛。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留局扶,地道東北人恨统。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓叁扫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親畜埋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子莫绣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件悠鞍、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,105評(píng)論 4 62
  • 概述在iOS開發(fā)中UITableView可以說是使用最廣泛的控件对室,我們平時(shí)使用的軟件中到處都可以看到它的影子,類似...
    liudhkk閱讀 9,049評(píng)論 3 38
  • 文/亮媽 2016年最后一天了锭亏,大家都在哪里做什么呢?五福集齊了嗎硬鞍?本來計(jì)劃在公歷2016年底寫的年度總結(jié)拖到了農(nóng)...
    亮媽Maggie閱讀 457評(píng)論 0 1
  • 2016年國慶節(jié)前夕,我為父母辦了一場素食感恩宴戴已,源自于這一年多來的學(xué)習(xí)固该,因?yàn)槲沂潜镜匾患颐赓M(fèi)互助素食餐廳的發(fā)起人...
    章益華的日常分享閱讀 675評(píng)論 0 1
  • 1.人物 合理。出場退場糖儡。語言伐坏,思維,行為握联,情感桦沉。如果一定要有悖常理,事先鋪墊金闽。 人物分類 地位纯露,文化,經(jīng)濟(jì)...
    胖妞蘭閱讀 300評(píng)論 0 0