IOS 7中UINavigationBar下的白线

时间:2013-11-08 06:46:30

标签: ios iphone objective-c ios7 uikit

我有UITableViewController UISearchDisplayControllerUISearchBar。当我在UITabBarController中呈现视图时,我在导航栏下面看到一条白线。当我在UINavigationController中以模态方式呈现视图时,该行是灰色或黑色(我无法分辨),它看起来非常正常。有什么想法吗?

enter image description here

6 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,无法弄清楚它来自哪里(它存在于任何地方而且不是shadowImage),最后得到了以下修复(在{{1}中) }子类)

UINavigationController

答案 1 :(得分:4)

我也有同样的问题,在尝试了很多方法后,我发现这种方式解决了我的问题

[[UISearchBar appearance] setBackgroundColor:[UIColor yourColor]];

将它写在viewDidLoad中。

答案 2 :(得分:1)

尝试将UISearchBar上的clipsToBounds属性设置为YES。

答案 3 :(得分:1)

白线可能是导航栏的shadowImage

尝试将其设置为:

self.navigationController.navigationBar.shadowImage = [UIImage new];

答案 4 :(得分:1)

使用以下代码行:

UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 43, 320, 1)];
[overlayView setBackgroundColor:[UIColor whiteColor]];   // set color accordingly
[navBar addSubview:overlayView]; // navBar is your UINavigationBar instance
[overlayView release];

这是我发布的答案: Horizontal Separator NavBar IOS 7

How to remove UINavigatonItem's border line

答案 5 :(得分:0)

迅捷版Divya的答案

    let hideLineView = UIView(frame: CGRect(x: 0, y: navigationController!.navigationBar.frame.size.height, width: view.frame.size.width, height: 1))
    hideLineView.backgroundColor = UIColor.white
    navigationController!.navigationBar.addSubview(hideLineView)