您的位置:首页 > 产品设计 > UI/UE

iOS UIButton同时设置title和image属性

2015-11-30 13:30 495 查看
在iOS开发中,使用UIButton设置title和image,达到tabBarItem的效果,即title在下,image在上:





方法一,使用UIEdgeInsets

UIButton *button
= [UIButton buttonWithType:UIButtonTypeSystem];

[button setFrame:CGRectMake(100, 100, 60, 60)];

[button setBackgroundColor:[UIColor greenColor]];



UIImage *image = [UIImage imageNamed:@"index"];

[button setTitle:@"首页" forState:UIControlStateNormal];

[button setImage:image forState:UIControlStateNormal];



// 如果不设置,则默认image在左,title在右,居中显示

// 如果如下设置,则title和image重叠居中显示

button.titleEdgeInsets = UIEdgeInsetsMake(0.0,
-image.size.width, 0.0, 0.0);

button.imageEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, 0.0,
-

button.titleLabel.bounds.size.width);

// 如果如下设置,则title向下移动40个单位,在下,image向上移动20个单位,在上,居中显示

button.titleEdgeInsets = UIEdgeInsetsMake(40.0,
-image.size.width, 0.0, 0.0);

button.imageEdgeInsets = UIEdgeInsetsMake(-20.0, 0.0, 0.0,
-

button.titleLabel.bounds.size.width);

[self.view addSubview:button];

方法二,重写UIButton的layoutSubviews

- (void)layoutSubviews

{

[super layoutSubviews];

CGPoint center = self.imageView.center;

center.x = self.frame.size.width/2;

center.y = self.imageView.frame.size.height/2;

self.imageView.center =
center;

CGRect frame = [self titleLabel].frame;

frame.origin.x = 0;

frame.origin.y = self.imageView.frame.size.height + 2;

frame.size.width = self.frame.size.width;

self.titleLabel.frame =
frame;

self.titleLabel.textAlignment = NSTextAlignmentCenter;

[self.titleLabel setFont:[UIFont systemFontOfSize:10.0f]];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: