UISearchBar宽度错误的景观

时间:2011-06-24 11:08:36

标签: iphone cocoa-touch orientation uisearchbar landscape

当您以横向模式启动时,我的搜索栏会稍微向右拉伸。如果然后旋转到纵向模式,它仍然略宽。但是,如果您以纵向模式启动,并且然后将其旋转为横向,则它很好。这是我的代码。

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

3 个答案:

答案 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/