在iOS开发中,使用UIButton设置title和p_w_picpath,达到tabBarItem的效果,即title在下,p_w_picpath在上:
成都创新互联是一家集网站建设,醴陵企业网站建设,醴陵品牌网站建设,网站定制,醴陵网站建设报价,网络营销,网络优化,醴陵网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
目前,我发现有两种比较好的方法:
方法一,使用UIEdgeInsets
UIButton *button = [UIButtonbuttonWithType:UIButtonTypeSystem];
[button setFrame:CGRectMake(100, 100, 60, 60)];
[buttonsetBackgroundColor:[UIColorgreenColor]];
UIImage *p_w_picpath = [UIImage p_w_picpathNamed:@"index"];
[buttonsetTitle:@"首页"forState:UIControlStateNormal];
[buttonsetImage:p_w_picpathforState:UIControlStateNormal];
// 如果不设置,则默认p_w_picpath在左,title在右,居中显示
// 如果如下设置,则title和p_w_picpath重叠居中显示
button.titleEdgeInsets = UIEdgeInsetsMake(0.0, -p_w_picpath.size.width, 0.0, 0.0);
button.p_w_picpathEdgeInsets =UIEdgeInsetsMake(0.0,0.0,0.0, -
button.titleLabel.bounds.size.width);
// 如果如下设置,则title向下移动40个单位,在下,p_w_picpath向上移动20个单位,在上,居中显示
button.titleEdgeInsets = UIEdgeInsetsMake(40.0, -p_w_picpath.size.width, 0.0, 0.0);
button.p_w_picpathEdgeInsets =UIEdgeInsetsMake(-20.0,0.0,0.0, -
button.titleLabel.bounds.size.width);
[self.viewaddSubview:button];
方法二,重写UIButton的layoutSubviews
- (void)layoutSubviews
{
[superlayoutSubviews];
CGPoint center =self.p_w_picpathView.center;
center.x = self.frame.size.width/2;
center.y =self.p_w_picpathView.frame.size.height/2;
self.p_w_picpathView.center = center;
CGRect frame = [self titleLabel].frame;
frame.origin.x = 0;
frame.origin.y =self.p_w_picpathView.frame.size.height +2;
frame.size.width =self.frame.size.width;
self.titleLabel.frame = frame;
self.titleLabel.textAlignment =NSTextAlignmentCenter;
[self.titleLabelsetFont:[UIFontsystemFontOfSize:10.0f]];
}