http://developer.apple.com/iphone/library/samplecode/TableSearch/Introduction/Intro.html
但是,当我自己制作时,它看起来很不错,但当我触摸它看起来像丑陋时,范围按钮和搜索栏显示在同一行中,如下所示:
http://cl.ly/BN9
我该怎么办才能让它像iPad中的“tableSearch”一样?
我正在做IB中的所有事情,并尝试从控制器以编程方式修改搜索栏:
- (voID)vIEwDIDLoad { [super vIEwDIDLoad]; self.tableVIEw.rowHeight = 88.0f; self.tableVIEw.contentOffset = CGPointMake(0,self.searchdisplayController.searchbar.frame.size.height);self.searchdisplayController.searchResultstableVIEw.rowHeight = self.tableVIEw.rowHeight; //BELOW DID NOT WORK: CGRect b = self.searchdisplayController.searchbar.bounds; self.searchdisplayController.searchbar.bounds = CGRectMake(b.origin.x,b.origin.y,b.size.wIDth,self.tableVIEw.rowHeight); b = self.searchdisplayController.searchbar.frame; self.searchdisplayController.searchbar.frame = CGRectMake(b.origin.x,self.tableVIEw.rowHeight); //BELOW WORKS PERFECT BUT IS A PRIVATE METHOD,HENCE I AM NOT SUPPOSED TO USE IT //[self.searchdisplayController.searchbar setCombinesLandscapebars:NO]; }
提前致谢.
解决方法 我也遇到过这个错误,我已经向Apple提交了一份报告,并要求提供技术帮助.我会告诉你它是怎么回事.与此同时,我将简要介绍一下这个BUG.在iPhone上,为了在横向模式下保留珍贵的垂直屏幕空间,UISearchdisplayController将UISearchbar设置为在单个水平布局中组合其搜索栏和搜索字段.由于屏幕的水平尺寸增加(横向480点),因此效果非常好.不幸的是,它在iPad上工作得不是很好,在横向模式下,首先不需要改变UI因为你有足够的垂直空间.在UISplitVIEwController的主视图中,您仍然只有320像素的水平显示空间,而不是增加的480的iPhone.结果是iSore.
据推测,问题在于UISearchdisplayController在其willRotatetoInterfaceOrIEntation:duration:方法中表现不佳.具体来说,在它的UISearchbar上设置combineLandscapebars属性之前,无需检查它是否在iPhone上.您的代码中的私有API kludge可以正常工作,因为它修复了UISearchdisplayController中的疏忽.但是,苹果公司当然会因为使用未记录的API而逐渐降低古人对你的愤怒,所以你做不到.真的,我们受苹果公司的支配.
如果你愿意放弃UISearchdisplayController的眼睛和便利,你可以使用UISearchbar没有UISearchdisplayController并自己管理演示的各个方面.显然,如果Apple的API工程师完成了他们的工作,这需要更多的代码并且毫无意义,但它至少会解决显示错误.
如果你是Apple,你可以使用你自己的未记录的API,这就是Mail.app没有这个问题的原因.
UPDATE
我向Apple提交的错误报告是#8344719.
总结以上是内存溢出为你收集整理的ipad – 为什么UISearchBar及其范围按钮显示在一行?全部内容,希望文章能够帮你解决ipad – 为什么UISearchBar及其范围按钮显示在一行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)