Ios UtiAbbar宽度不随屏幕大小增加

Ios UtiAbbar宽度不随屏幕大小增加,ios,objective-c,autolayout,uitabbar,uitabbaritem,Ios,Objective C,Autolayout,Uitabbar,Uitabbaritem,我正在另一个uitabar中实现一个uitabar。我的问题是,无论屏幕大小如何,第二个选项卡栏的宽度都保持不变。这在更大的屏幕上非常突出。我附上一个截图,让你更好地理解。选择用蓝色背景表示 代码如下: GRect rect = CGRectMake(0, 0, self.tabBar.frame.size.width/2, self.tabBar.frame.size.height); UIGraphicsBeginImageContext(rect.size); CGC

我正在另一个
uitabar
中实现一个
uitabar
。我的问题是,无论屏幕大小如何,第二个选项卡栏的宽度都保持不变。这在更大的屏幕上非常突出。我附上一个截图,让你更好地理解。选择用蓝色背景表示

代码如下:

GRect rect = CGRectMake(0, 0, self.tabBar.frame.size.width/2, self.tabBar.frame.size.height);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context,
                                   [[UIColor colorWithRed:102.0/255.0 green:197.0/255.0 blue:234.0/255.0 alpha:1.0] CGColor]);

    CGContextFillRect(context, rect);
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    self.tabBar.selectionIndicatorImage = img;
iphone6plus的屏幕截图


感谢您提供突出显示按钮的片段。
你想要这样的东西吗?
纵向方向:


景观方向:


我的ViewController的代码:


这是默认值吗?如何设置highlite按钮?刚刚添加了代码,如何设置自动布局?自动布局设置为“正常”。视图的宽度等于屏幕的宽度………只有第二个选项卡的宽度保持为“320”。更有趣的是,如果我在控制台中打印宽度(self.tabbar.frame.size.width),它会显示375,对于iphone 6和414,对于iphone 6+…但大小在视图中不会改变尝试调用此方法(在其中设置选项卡栏的宽度),并使用一些延迟,而不是横向。该应用程序只能在纵向模式下运行。我希望宽度随screensizeSo方法viewDidLayoutSubviews的增加而增加,可能不需要。如果答案对您有帮助,请将其标记为正确。它没有帮助。对不起
#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITabBar *tabBar;
@property (weak, nonatomic) IBOutlet UITabBar *topTabBar;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [[UITabBar appearance] setTintColor:[UIColor redColor]];
    [[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName :  [UIFont boldSystemFontOfSize:20]} forState:UIControlStateNormal];
}

- (void)viewDidLayoutSubviews {

    [self highlightTabBarItems:self.tabBar];
    [self highlightTabBarItems:self.topTabBar];
}

- (void)highlightTabBarItems:(UITabBar*)currentTabBar {

    CGFloat highlightedWidth = self.view.frame.size.width/currentTabBar.items.count;
    [currentTabBar setItemWidth:highlightedWidth];
    CGRect rect = CGRectMake(0, 0, highlightedWidth, currentTabBar.frame.size.height);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [[UIColor colorWithRed:102.0/255.0 green:197.0/255.0 blue:234.0/255.0 alpha:1.0] CGColor]);
    CGContextFillRect(context, rect);
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    currentTabBar.selectionIndicatorImage = img;
}

@end