2016-12-13 6 views
0

Я пытаюсь сосредоточить свой заголовок в моем navigationItem. После локализации моего приложения, я видел такое поведение:центрирование titleView в навигацииItem

Before After

Это мой код как extension к navigationItem:

extension UINavigationItem{ 
func makeImg(){ 


    let container = UIView(frame: CGRect(x: 0,y: 0,width: 200,height: 40)) 
    let logo = UIImage(named: "Rookie") 
    let imageView = UIImageView(frame: CGRect(x: 66.75, y: 7.25, width: 66.5, height: 25.5)) 
    imageView.image = logo 
    imageView.layer.masksToBounds = true 
    imageView.clipsToBounds = true 


    container.addSubview(imageView) 
    self.titleView = container 


} 

} 

Я думаю, что это что-то делать с моей SuperView в navigationItem. Итак, я должен ссылаться на границы экранов. Есть идеи?

+0

Есть ли конкретная причина сматывания ImageView в контейнере? Вы можете установить изображениеView как titleView напрямую. – Ryan

ответ

1

Это происходит, если вид, установленный как titleView, очень широк. Представления, которые добавляются как titleView, изменяются только в том случае, если их ширина больше, чем доступное пространство, и в этом случае они изменяются, чтобы заполнить пробел между элементом левой кнопки и справа.

В этом случае вы установили объект container как ширину в 200 точек, который шире, чем доступное пространство с обоими этими элементами.

Если вы установили ширину container в соответствии с представлением изображения (то есть, 66,5 балла), то он должен стать центрированным. :)

(Или наоборот, если вы не собираетесь добавлять любое другие точки зрения, вы можете настроить вид изображений непосредственно в качестве titleView)

+0

попытался сделать это напрямую. работал как шарм. Спасибо большое – JVS

+1

Не беспокойтесь! Рад, что смог помочь! :) – TiM