UIButton在UIToolbar中被设置为选中状态时呈现圆点

5
我正在将一个UIButton添加到UIToolbar中,但我不想将其作为UIBarButtonItem。这样可以更好地控制UIButton在框架内的位置。我为“Normal”和“Selected”状态设置了不同的标题。除了在“Selected”状态下,在UIButton标题前面会有一个1像素的点外,一切都很正常。

工具栏:

    UIToolbar *customView = [[UIToolbar alloc] initWithFrame:CGRectMake(HEADER_MARGIN, 0, HEADER_WIDTH, HEADER_HEIGHT)];
[customView setBarTintColor:[UIColor whiteColor]];

按钮:

UIButton *listOrderButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, ORDER_BUTTON_WIDTH, ORDER_BUTTON_HEIGHT)];
[listOrderButton setCenter:CGPointMake(customView.center.x, HEADER_HEIGHT/2)];
[listOrderButton.titleLabel setFont:[UIFont systemFontOfSize:ORDER_BUTTON_FONT_SIZE]];
[listOrderButton.titleLabel setTextAlignment:NSTextAlignmentCenter];
[listOrderButton setTitle:@"ABC" forState:UIControlStateNormal];
[listOrderButton setTitle:@"Time" forState:UIControlStateSelected];
[listOrderButton setTitleColor:[UIColor blueAppColor] forState:UIControlStateNormal];
[listOrderButton addTarget:self action:@selector(listOrderChange:) forControlEvents:UIControlEventTouchUpInside];
[customToolbar addSubview:listOrderButton];

选择器:

- (void)listOrderChange:(UIButton *)sender {
[sender setSelected:!sender.selected];
}

正在发生的情况图像:

未选中时没有点 - 未选中时没有点
选中时有一个点 - 选中时有一个点

这在设备和模拟器上都会发生。更改任何状态的文本颜色对点本身的颜色没有影响。

我还应指出,该点宽两个点,高一个点。


非常好奇!这是在设备上和模拟器上同时发生吗? - Sergey Kalinichenko
如果您在调试器中停止并执行 po [[UIWindow keyWindow] recursiveDescription],您是否会看到在工具栏下的视图层次结构中不属于其中的任何内容? - Aaron Golden
1个回答

0

不要使用UIButton,我知道你不想使用UIBarButton,但是是否可能通过编程创建一个UIBarButton并赋予它所有UIButton的功能呢? 由于UITabBar类似于UINavigation Bar,而苹果建议使用UIBarButtonItem来处理bar/tabBar按钮... 我相信使用UIBarButtonItem可能会解决这个问题...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接