Objective-C中带有圆角和自定义高度的UITabbar

Posted

技术标签:

【中文标题】Objective-C中带有圆角和自定义高度的UITabbar【英文标题】:UITabbar with rounded corners & custom height in Objective-C 【发布时间】:2020-03-03 12:16:38 【问题描述】:

我在我的应用程序中使用 UITabbar,它有四个选项。我想增加默认的 Jabbar 高度,并使左上角和右上角圆角。

我尝试了这些解决方案,但它不起作用。 Rounded corners for UITabBar

Change tab bar height and width and add rounded corners

以下代码适用于圆角和高度,但在拐角处显示黑色空间(附图供参考)。

下面是我的代码。

- (void)viewDidLayoutSubviews 
       [super viewDidLayoutSubviews];

       [self.tabBar invalidateIntrinsicContentSize];
       CGRect tabFrame = self.tabBar.frame;
       tabFrame.size.height = tabbarHeight;
       tabFrame.origin.y = self.view.frame.size.height - tabbarHeight;
       self.tabBar.frame = tabFrame;


// Called this method in viewDidLoad
- (void)customizeTabbarAppearance 
    [self.tabBar setTintColor:[UIColor redColor]];
    [self.tabBar setBarTintColor:[UIColor whiteColor]];
    [self.tabBar.layer setCornerRadius:20];
    [self.tabBar setTranslucent:YES];
    [self.tabBar.layer setMasksToBounds:YES];
    self.tabBar.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner;

【问题讨论】:

你试过给 UIWindow 设置背景色吗? 你能解释一下改变窗口的背景颜色如何影响这个 我试过这样 UIWindow *window = [[[UIApplication sharedApplication] delegate] window]; [窗口设置背景颜色:[UIColor redColor]];我仍然面临同样的问题 github.com/satishVekariya/SUITabView @Sivagami 只是你在你的 App Delegate 类上设置了self.window.backgroundColor = UIColor.whiteColor; 【参考方案1】:

@Sivagami 在你的控制器 UIViewDidLoad 上试试这个,

UITabBar.appearance().shadowImage = UIImage()

【讨论】:

试过这个,但不起作用。但是,我没有在 AppDelegate 中更改窗口颜色,而是在初始视图控制器中更改了所有选项卡,现在对我来说工作正常。感谢您的帮助

以上是关于Objective-C中带有圆角和自定义高度的UITabbar的主要内容,如果未能解决你的问题,请参考以下文章

颤动中带有圆角的警报对话框

在卡片视图中使用时,Android 中带有圆角的 Persistent Bottom Sheet 会崩溃

导航栏高度和自定义按钮

垂直滚动中带有左侧停靠标题的自定义 UICollectionViewLayout

如何使用导航栏和自定义大小创建 modalVC?

UI基本控件和自定义视图