怎么修改 uibutton图片文字垂直 的文字

怎么修改 UIButton 的文字_百度知道
怎么修改 UIButton 的文字
我有更好的答案
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片上下垂直居中对齐 - iPhone手机开发技术文章 - 红黑联盟
iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片上下垂直居中对齐
UIEdgeInsets
typedef struct UIEdgeInsets { &
& & CGFloat top, left, bottom, &// specify amount to inset (positive) for each of the edges. values can be negative to 'outset' &
} UIEdgeI &
在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets
@property(nonatomic) & & & & &UIEdgeInsets contentEdgeInsets UI_APPEARANCE_SELECTOR; // default is UIEdgeInsetsZero &
@property(nonatomic) & & & & &UIEdgeInsets titleEdgeI & & & & & & & &// default is UIEdgeInsetsZero &
@property(nonatomic) & & & & &BOOL & & & & reversesTitleShadowWhenH // default is NO. if YES, shadow reverses to shift between engrave and emboss appearance &
@property(nonatomic) & & & & &UIEdgeInsets imageEdgeI & & & & & & & &// default is UIEdgeInsetsZero &
UIEdgeInsetsMake
里面的四个参数表示距离上边界、左边界、下边界、右边界的距离,默认都为零,title/image在button的正中央
UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) { &
& & UIEdgeInsets insets = {top, left, bottom, right}; &
&self.view.backgroundColor = [UIColor blackColor]; &
& & UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//button的类型 &
& & button.frame = CGRectMake(100, 100,90, 90);//button的frame &
& &button.backgroundColor = [UIColor cyanColor];//button的背景颜色 &
// & &[button setBackgroundImage:[UIImage imageNamed:@&man_64.png&] forState:UIControlStateNormal]; &
// & &在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets &
& & [button setImage:[UIImage imageNamed:@&IconHome@2x.png&] forState:UIControlStateNormal];//给button添加image &
& & button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);//设置image在button上的位置(上top,左left,下bottom,右right)这里可以写负值,对上写-5,那么image就象上移动5个像素 &
& & [button setTitle:@&首页& forState:UIControlStateNormal];//设置button的title &
& & button.titleLabel.font = [UIFont systemFontOfSize:16];//title字体大小 &
& & button.titleLabel.textAlignment = NSTextAlignmentC//设置title的字体居中 &
& & [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];//设置title在一般情况下为白色字体 &
& & [button setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];//设置title在button被选中情况下为灰色字体 &
& & &button.titleEdgeInsets = UIEdgeInsetsMake(71, -button.titleLabel.bounds.size.width-50, 0, 0);//设置title在button上的位置(上top,左left,下bottom,右right) &
// & &[button setContentEdgeInsets:UIEdgeInsetsMake(70, 0, 0, 0)];// &
// & button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentC//设置button的内容横向居中。。设置content是title和image一起变化 &
& & [button addTarget:self action:@selector(tap) forControlEvents:UIControlEventTouchUpInside]; &
& & [self.view addSubview:button]; &
//button相应的事件 &
-(void)tap { &
& & NSLog(@&tap a button&); &
& & UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@&hello& message:@&willingseal& delegate:self cancelButtonTitle:@&ok& otherButtonTitles: nil nil]; &
& & [alertView show]; &通常,如果直接设置UIButton的和文字,默认的两者相对位置可能不是我们想要的,那么需要进行调整。
需要用到的函数如下:
UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
top,left,bottom,right分别表示向各个方向的移动量
实例说明:
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(50, 100, 300, 300)];
//设置文字
[button setTitle:@"测试" forState:UIControlStateNormal];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
button.titleLabel.font = [UIFont FontOfSize:25];
//为了有所区分,设置按钮背景颜色为黑色
button.backgroundColor = [UIColor blackColor];
//设置图片
[button setImage:[UIImage imageNamed:@"QQ"] forState:UIControlStateNormal];
[self.view addSubview:button];
如果想要调整title的位置到image下方,那么可以调整title向下,向左移动
button.titleEdgeInsets = UIEdgeInsetsMake(125, -150, 0, 0);
通常,button的大小不会这么大,所以要在有限的内,同时调整title和image的位置
button.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);
button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);
版权声明:本文为博主原创,未经博主允许不得转载。

我要回帖

更多关于 uibutton 文字 的文章

 

随机推荐