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

UIButton和UINavigationItem设置图片和文字位置

2016-08-18 11:57 525 查看

1.UIButton设置文字位置

有些时候我们想让UIButton的title居左对齐,我们设置

btn.textLabel.textAlignment=UITextAlignmentLeft

是没有作用的,我们需要设置

btn.contentHorizontalAlignment=UIControlContentHorizonAlignmentLeft;


但是问题又出来,此时文字会紧贴到做边框,我们可以设置

btn.contentEdgeInsets=UIEdgeInsetsMake(0,10,0,0);//使文字距离做边框保持10个像素的距离。


如果是图片+文字:



UIButton*button=[UIButtonbuttonWithType:UIButtonTypeCustom];
button.frame=buttonRect;
[buttonsetTitle:@"title"forState:UIControlStateNormal];
[buttonsetImage:buttonImageforState:UIControlStateNormal];
button.imageEdgeInsets=UIEdgeInsetsMake(0.0,WIDTH(button.titleLabel)+10.0,0.0,0.0);



2.自定义UINavigationItem包含图片和文字

UIButton*btn=[UIButtonbuttonWithType:UIButtonTypeRoundedRect];

//设置frame只能控制按钮的大小
btn.frame=CGRectMake(0,0,40,44);

[btnaddTarget:selfaction:@selector(buttonClicked)forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem*btn_right=[[UIBarButtonItemalloc]initWithCustomView:btn];

UIBarButtonItem*negativeSpacer=[[UIBarButtonItemalloc]

initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace

target:nilaction:nil];

/**

*width为负数时,相当于btn向右移动width数值个像素,由于按钮本身和边界间距为5pix,所以width设为-5时,间距正好调整

*为0;width为正数时,正好相反,相当于往左移动width数值个像素

*/

negativeSpacer.width=-5;

self.navigationItem.rightBarButtonItems=[NSArrayarrayWithObjects:negativeSpacer,btn_right,nil];



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