2015-09-02 2 views
2

UINavigationBar Предположим, что вы находитесь в верхней части обзора contoller. Это не видно. Я добавляю константы с представлением.Как добавить автоматические ограничения компоновки в UINavigationBar программно

Код:

navBar=[[UINavigationBar alloc]init]; 
    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:navBar attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:10]]; 

    [navBar setBackgroundColor:[UIColor blueColor]]; 

    [views addSubview:navBar]; 

Есть ли какие-либо проблемы при добавлении ограничений?

+0

Вы не можете использовать autolayoutconstraints с UINavigationBar. Рассмотрим подкласс класса UINavigationBar – Sandeep

+0

Итак, как я буду добавлять UINavigationBar, если я не использую какой-либо метод фрейма. @ GeneratorOfOne –

+0

Просто используйте методы в UINavigationBar self.leftBarButtonItem, self.rightBarButtonItem или self.titleView. – Sandeep

ответ

-1

Вы можете программно установить ограничения макета для UINavgationBar, ограничение, которое вы задаете, неверно.

Вы установили:

self.view.top = navBar.NotAnAttribute * 1,0 (множитель) + 10,0 (константа)

На мой взгляд, это должно быть:

self.view.top = navBar.top * 1,0 + 10,0

поэтому:

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:navBar attribute:NSLayoutAttributeTop multiplier:1.0 constant:10]]; 

должны приста к.

Смежные вопросы