自定義UITabBar炼邀,想在系統(tǒng)tabBar基礎(chǔ)上添加UIButton之類控件的話,可以通過kvc替換掉controller的tabBar:
[self setValue:tabBar forKeyPath:@"tabBar"];
在自定義UITabBar中l(wèi)ayoutSubviews方法中布局控件歹茶。
但細心的同學(xué)會發(fā)現(xiàn)tabBar上子控件的響應(yīng)范圍超出了控件的frame贫堰,尤其在tabBar上控件較少的情況下缕溉。
如上圖tabBarItem的frame為紅色區(qū)域,但是整個綠色框內(nèi)都會響應(yīng)點擊肴焊。
具體原因本人還沒弄清楚前联,但還是有方法解決這個問題的:修改tabBar的itemPositioning屬性。
Use UITabBarItemPositioningCenter to force the items to center with a default width (or the itemWidth, if set).
所有我們設(shè)置itemWidth為self.bounds.size.width / n娶眷,再設(shè)置itemPositioning為UITabBarItemPositioningCentered似嗤,控件的響應(yīng)范圍就和frame一致了。