UIToolbar - 添加等宽按钮没有间隙
Posted
技术标签:
【中文标题】UIToolbar - 添加等宽按钮没有间隙【英文标题】:UIToolbar - add equal width buttons without gaps 【发布时间】:2018-04-26 15:54:22 【问题描述】:我有 UIToolbar,我想给它添加大小相同的 UIButtons。 目前,我有:
CGFloat width = self.toolbarMapMenu.frame.size.width / 4.0;
CGFloat height = self.toolbarMapMenu.frame.size.height;
btn0 = [self createMenuButton:@"a" width:width height:height];
btn1 = [self createMenuButton:@"b" width:width height:height];
btn2 = [self createMenuButton:@"c" width:width height:height];
btn3 = [self createMenuButton:@"d" width:width height:height];
UIBarButtonItem *it0 = [[UIBarButtonItem alloc] initWithCustomView:btn0];
UIBarButtonItem *it1 = [[UIBarButtonItem alloc] initWithCustomView:btn1];
UIBarButtonItem *it2 = [[UIBarButtonItem alloc] initWithCustomView:btn2];
UIBarButtonItem *it3 = [[UIBarButtonItem alloc] initWithCustomView:btn3];
[self.toolbarMapMenu setItems:[NSArray arrayWithObjects:
it0, it1, it2, it3,
nil]
];
还有其他地方
-(UIButton *)createMenuButton: (NSString *)name width:(CGFloat) w height:(CGFloat) h
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.tintColor = [UIColor whiteColor];
[btn setImage:[UIImage imageNamed:name] forState:UIControlStateNormal];
[[btn.widthAnchor constraintEqualToConstant: w] setActive:true];
[[btn.heightAnchor constraintEqualToConstant: h] setActive:true];
btn.translatesAutoresizingMaskIntoConstraints = false;
return btn;
但是,当我添加这些按钮时,它们的大小相同,但是在第一个/最后一个按钮之前和之后有一个间隙:
类似这样的东西(UIToolbar):
(<gap> btn0 btn1 btn2 btn3 <gap>)
我怎样才能消除这个间隙并在工具栏地图菜单的开头有按钮?
【问题讨论】:
【参考方案1】:尝试在每个项目之间添加灵活的空间,它可能会解决您的问题并提供一致的视图。
// Flexible Space
UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[self.toolbarMapMenu setItems:[NSArray arrayWithObjects:
it0, flexibleItem,
it1, flexibleItem,
it2, flexibleItem,
it3,
nil]];
【讨论】:
以上是关于UIToolbar - 添加等宽按钮没有间隙的主要内容,如果未能解决你的问题,请参考以下文章