UISearchBar ширина неправильно в ландшафте - PullRequest
4 голосов
/ 24 июня 2011

Моя строка поиска немного растянута вправо при запуске в ландшафтном режиме. Это все еще немного слишком широко, если затем повернуть в портретный режим. Тем не менее, это хорошо, если вы начинаете в портретном режиме, а также если вы затем поворачиваете его в альбомную. Вот мой код.

sBar = [[UISearchBar alloc] initWithFrame:CGRectZero];
[sBar sizeToFit];
sBar.delegate = self;
sBar.autoresizingMask = UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleBottomMargin;
[self.view addSubview:sBar];

Ответы [ 3 ]

6 голосов
/ 27 июня 2011

Ответ состоял в том, чтобы добавить панель поиска в представление перед запуском остальной части кода.

UISearchBar * tempSBar = [[UISearchBar alloc] initWithFrame:CGRectZero];
self.sBar = tempSBar;
[tempSBar release];

[self.view addSubview:sBar];
[sBar sizeToFit];
sBar.delegate = self;
sBar.autoresizingMask = UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleBottomMargin;
0 голосов
/ 25 ноября 2016

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

// Update search bar frame.
CGRect superviewFrame = self.searchDisplayController.searchBar.superview.frame;
superviewFrame.origin.y = 0.f;
self.searchDisplayController.searchBar.superview.frame = superviewFrame;

И все снова стало красиво и солнечно.Спасибо, Питер, за http://petersteinberger.com/blog/2013/fixing-uisearchdisplaycontroller-on-ios-7/

0 голосов
/ 24 июня 2011
UIViewAutoresizingFlexibleRightMargin 

добавьте это в sBar.autoresizingMask, у меня это так же хорошо, как и у других 2, и у меня нет проблем.если вы используете IB, убедитесь, что там указана правильная ширина

...