Я хочу, чтобы мое приложение, чтобы вести себя так:центрирования два вида в судоходстве titleView
Это важно иметь точное поведение моего NavigationItem.titleView
Я последовал за эти действия до сих пор:
Я создаю три вида программно в моем приложении:
(1) container
=> имеет место (2) и (3) => имеет gestureRecognizer присоединен
let container = UIView(frame: CGRectMake(0,0,200,40))
(2) imageContainer
=> имеет изображение
let imageContainer = UIImageView(frame: CGRectMake(0, 0, 30, 30))
imageContainer.image = UIImage(named: "mock.jpg")
(3) textContainer
= > имеет некоторый текст
let textContainer = UILabel(frame: CGRectMake(0,0, 180, 20))
textContainer.text = "Group xY"
После я устанавливаю центр изображения, чтобы выровнять их:
imageContainer.center = CGPointMake(container.frame.size.width/2,
container.frame.size.height/2)
textContainer.center = CGPointMake(container.frame.size.width/2,
container.frame.size.height/2)
Теперь я добавляю все подвиды на мой взгляд, и установка
self.navigationItem.titleView = (1)
Запуск приложения показывает, что элементы в titleView в не выровнены
Есть ли способ правильно реализовать это точное поведение?
Примечание: не беспокойтесь о круговом изображении. Я знаю, как это реализовать.
Спасибо. Это очень помогает. Есть ли способ установить максимальную ширину представления? если я поместил в него более длинный текст, весь Navbar будет заполнен, но я также хотел бы иметь свой Navigationbar.barButtonitems – JVS
Я обновил свой ответ. Вы можете просто проверить ширину метки после 'sizeToFit', если она больше, чем самая большая ширина, которую вы хотите установить для максимальной ширины else оставить как есть (например,' min (maxWidth, textContainer.frame.size.width) 'Вы также можете скорректируйте коэффициент масштабирования меток, чтобы сжиматься до приспособления, хотя вы, вероятно, не хотите сжимать его связкой для названия. – beyowulf