2015-09-18 15 views
5

Tôi đã sử dụng UITabbar trong một ứng dụng. Có một đường biên giới phía trên nằm trên cùng của thanh UITabbar. Tham khảo bên dưới hình ảnh: -Xóa đường biên giới trên UITabbar

Tôi google nó và cố gắng mã đề nghị như sau: -

[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]]; 

Cũng

[[UITabBar appearance] setShadowImage:nil]; 

self.navigationController.toolbar.clipsToBounds = YES; 

Nhưng không ai trong số họ đang làm việc. Bất kì giải pháp nào?

enter image description here

+0

** iOS 10.X ** có một số thay đổi, vì vậy hãy làm theo [TRẢ LỜI NÀY] (http://stackoverflow.com/a/39858796/3752143). –

Trả lời

6
[self.tabBar setValue:@(YES) forKeyPath:@"_hidesShadow"]; 

hoặc bạn có thể sử dụng

[[UITabBar appearance] setShadowImage:[UIImage imageNamed:@"transparentShadow.png"]]; 

hoặc

[[UITabBar appearance] setShadowImage:nil]; 
+0

Vì bạn đang thêm hình nền cũng nên ẩn bóng. – Usama

+0

bạn có nghĩa là tôi cần một hình ảnh minh bạch? –

+0

không cần phải thêm hình ảnh trong suốt nếu bạn không muốn bất kỳ hình ảnh nào cho bóng tối. chỉ cần vượt qua nil. xem câu trả lời đã chỉnh sửa của tôi. – Usama

1

Bạn cần phải thêm chỉ có hai dòng mã này cho biên giới remove từ UITabbar của bạn:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 


    [[UITabBar appearance] setBackgroundImage:[[UIImage alloc] init]]; 
    [[UITabBar appearance] setShadowImage:[[UIImage alloc] init]]; 
    // Override point for customization after application launch. 
    return YES; 
} 

Trước:

enter image description here

Sau:

enter image description here

UPDATE: Bạn canset hình nền cũng và thiết bóng là một con số không giống như đoạn mã sau

UIImage* tabBarBackground = [UIImage imageNamed:@"tabbar.png"]; 
    [[UITabBar appearance] setShadowImage:[[UIImage alloc] init]]; 
    [[UITabBar appearance] setBackgroundImage:tabBarBackground]; 

OUTPUT:

enter image description here

+0

Tác phẩm này nhưng tôi cũng cần phải đặt hình nền. Vì vậy, nếu tôi loại bỏ dòng đầu tiên sau đó nó cho thấy dòng –

+0

Điều này không làm việc nhanh chóng 3 xcode 8. Làm thế nào tôi có thể loại bỏ dòng này? –

5

tabBar.clipsToBounds = YES; là công việc cho tôi.

1

shadowImage thuộc tính của UITabbar chịu trách nhiệm về đường biên này (bóng màu xám) trên UITabbar. Cập nhật giá trị của thuộc tính này để xóa nó.

Hãy thử điều này, ** Objective-C **

//Remove shadow image by assigning nil value. 
[[UITabBar appearance] setShadowImage: nil]; 

// or 

// Assing UIImage instance without image reference 
[[UITabBar appearance] setShadowImage: [[UIImage alloc] init]]; 

** Swift **

//Remove shadow image by assigning nil value. 
UITabBar.appearance().shadowImage = nil 

// or 

// Assing UIImage instance without image reference 
UITabBar.appearance().shadowImage = UIImage() 


Dưới đây là hướng dẫn táo để shadowImage

@available(iOS 6.0, *) 
open var shadowImage: UIImage? 

Mặc định là không. Khi không phải là một hình ảnh bóng tùy chỉnh để hiển thị thay vì hình ảnh mặc định của bóng.Để hiển thị bóng tùy chỉnh, bạn cũng phải đặt hình nền tùy chỉnh với -setBackgroundImage: (nếu hình nền mặc định được sử dụng, hình ảnh mặc định sẽ được sử dụng là ).

Các vấn đề liên quan