突然發(fā)現(xiàn)自定義完 leftBarButtonItem 然后自定義titleView,titleView往右偏移
究其原因是因?yàn)?設(shè)置titleview之前,先初始化leftBarButtonItem和rightBarButtonItem的位置,然后根據(jù)leftBarButtonItem和rightBarButtonItem的位置來(lái)使titleview居中。
//必須放在 leftBarButtonItem和rightBarButtonItem初始化之后調(diào)用
廢話(huà)不說(shuō) 上代碼
CGRect leftViewbounds = self.navigationItem.leftBarButtonItem.customView.bounds;
CGRect rightViewbounds = self.navigationItem.rightBarButtonItem.customView.bounds;
CGRect frame;
CGFloat maxWidth = leftViewbounds.size.width > rightViewbounds.size.width ? leftViewbounds.size.width : rightViewbounds.size.width;
maxWidth += 15;//leftview 左右都有間隙,左邊是5像素,右邊是8像素,加2個(gè)像素的閥值 5 + 8 + 2
frame = self.titleLabel.frame;
frame.size.width = SWIDTH - maxWidth * 2;
self.titleLabel.frame = frame;
self.navigationItem.titleView = self.titleLabel;