当您以横向模式启动时,我的搜索栏会稍微向右拉伸。如果然后旋转到纵向模式,它仍然略宽。但是,如果您以纵向模式启动,并且然后将其旋转为横向,则它很好。这是我的代码。
sBar = [[UISearchBar alloc] initWithFrame:CGRectZero];
[sBar sizeToFit];
sBar.delegate = self;
sBar.autoresizingMask = UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleBottomMargin;
[self.view addSubview:sBar];
答案 0 :(得分:6)
答案是在运行其余代码之前将搜索栏添加到视图中。
UISearchBar * tempSBar = [[UISearchBar alloc] initWithFrame:CGRectZero];
self.sBar = tempSBar;
[tempSBar release];
[self.view addSubview:sBar];
[sBar sizeToFit];
sBar.delegate = self;
sBar.autoresizingMask = UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleBottomMargin;
答案 1 :(得分:0)
UIViewAutoresizingFlexibleRightMargin
将其添加到sBar.autoresizingMask,我和其他2一样,没有问题。如果您正在使用IB,请确保其中的宽度也正确
答案 2 :(得分:0)
我知道这是旧的并且已弃用,但我只是必须分享。我看起来高低不一的解决方案对我的情况有用。我尝试了所有的建议,但没有用。然后我偶然发现了这个宝石
// 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/