为了账号安全,请及时绑定邮箱和手机立即绑定

UINavgationBar设置translucent属性后,影响SearchBar自动隐藏??

UINavgationBar设置translucent属性后,影响SearchBar自动隐藏??

慕后森 2019-04-21 20:15:26
在页面内增加tableView和UISearchController[self.viewaddSubview:self.tableView];self.tableView.tableHeaderView=self.searchController.searchBar;并对UINavgationBar设置translucent属性后self.navigationBar.translucent=NO;按如下设置配置searchController-(UITableView*)tableView{if(_tableView==nil){_tableView=[[UITableViewalloc]initWithFrame:CGRectMake(0,0,UIScreenWidth,UIScreenHeight-44)];}return_tableView;}-(UISearchController*)searchController{if(_searchController==nil){_searchController=[[UISearchControlleralloc]initWithSearchResultsController:nil];_searchController.searchResultsUpdater=self;[_searchControllersetHidesNavigationBarDuringPresentation:YES];[_searchControllersetDimsBackgroundDuringPresentation:YES];[_searchController.searchBarsetFrame:CGRectMake(0,0,UIScreenWidth,44)];}return_searchController;}此时,点击searchbar,正常应该会,navbar会消失,searchbar动画上移。但实际情况是,searchbar直接移到了屏幕外面!!!!!!删除下面这句就又正常了。self.navigationBar.translucent=NO;请大神搭个Demo试试,这个问题。感觉是iOS的问题啊!!!
查看完整描述

2 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

似乎发现了原因。translucent属性的设置与否,与self.view的Frame的位置相关。当translucent设为NO时,self.view的位置,从navbar下边界开始。反之亦然。
                            
查看完整回答
反对 回复 2019-04-21
?
aluckdog

TA贡献1847条经验 获得超7个赞

应该是apple自己的bug,关于navigationBar的透明度设置引起的bug有好多,目前我是选择把hidesNavigationBarDuringPresentation属性设置成NO来解决的。总比看不见的要好。
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 461 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信