iOS-UIButton-设置button标题和图片位置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了iOS-UIButton-设置button标题和图片位置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3242字,纯文字阅读大概需要5分钟。
内容图文
![iOS-UIButton-设置button标题和图片位置](/upload/InfoBanner/zyjiaocheng/1183/5db10a454d0c4ed2a5ad0f014f216a23.jpg)
一.效果图
1.Button被点击之前
2.Button被点击之后
二.代码
1 - (void)createBtn3 2{ 3 UIImage * buttonImage = [UIImage imageNamed:@"1.jpg"]; 4 UIImage * selectedImage = [UIImage imageNamed:@"2.jpg"]; 5 CGFloat buttonImageViewWidth = CGImageGetWidth(buttonImage.CGImage); 6 CGFloat buttonImageViewHeight = CGImageGetHeight(buttonImage.CGImage); 7 8 NSString * buttonTitle = @"左图右标题"; 9 UIFont * buttonTitleFont = [UIFont systemFontOfSize:17.0f]; 10 NSDictionary * attributes = @{NSFontAttributeName : buttonTitleFont}; 11 CGSize buttonTitleLabelSize = [buttonTitle sizeWithAttributes:attributes]; 1213// button宽度,至少为imageView宽度与titleLabel宽度之和14 CGFloat buttonWith = buttonImageViewWidth + buttonTitleLabelSize.width; 15// button高度,至少为imageView高度与titleLabel高度之和16 CGFloat buttonHeight = buttonImageViewHeight + buttonTitleLabelSize.height; 1718 UIButton * btn3 = [[UIButton alloc] init]; 19 [btn3 setCenter:CGPointMake(160, 160)]; 20 [btn3 setBounds:CGRectMake(0, 0, buttonWith, buttonHeight)]; 21 [btn3 setBackgroundColor:[UIColor redColor]]; 2223 [btn3.titleLabel setFont:buttonTitleFont]; 24 [btn3 setImage:buttonImage forState:UIControlStateNormal]; 2526 [btn3 setImage:selectedImage forState:UIControlStateSelected]; 2728 [btn3 setTitle:buttonTitle forState:UIControlStateNormal]; 2930 [btn3 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 3132 [btn3.titleLabel setBackgroundColor:[UIColor whiteColor]]; 3334 [btn3 addTarget:self action:@selector(clicked:) forControlEvents:UIControlEventTouchUpInside]; 35 [self.view addSubview:btn3]; 3637} 38 - (void)clicked:(UIButton *)btn3 39{ 40 NSLog(@"btn1被点击了"); 41 NSString * buttonSelectedTitle = @"上图下标题"; 42 [btn3 setTitle:buttonSelectedTitle forState:UIControlStateNormal]; 4344 CGPoint buttonBoundsCenter = CGPointMake(CGRectGetMidX(btn3.bounds), CGRectGetMidY(btn3.bounds)); 4546// 找出imageView最终的center47 CGPoint endImageViewCenter = CGPointMake(buttonBoundsCenter.x, CGRectGetMidY(btn3.imageView.bounds)); 4849// 找出titleLabel最终的center50 CGPoint endTitleLabelCenter = CGPointMake(buttonBoundsCenter.x, CGRectGetHeight(btn3.bounds)-CGRectGetMidY(btn3.titleLabel.bounds)); 5152// 取得imageView最初的center53 CGPoint startImageViewCenter = btn3.imageView.center; 5455// 取得titleLabel最初的center56 CGPoint startTitleLabelCenter = btn3.titleLabel.center; 5758// 设置imageEdgeInsets59 CGFloat imageEdgeInsetsTop = endImageViewCenter.y - startImageViewCenter.y; 6061 CGFloat imageEdgeInsetsLeft = endImageViewCenter.x - startImageViewCenter.x; 6263 CGFloat imageEdgeInsetsBottom = -imageEdgeInsetsTop; 6465 CGFloat imageEdgeInsetsRight = -imageEdgeInsetsLeft; 6667 btn3.imageEdgeInsets = UIEdgeInsetsMake(imageEdgeInsetsTop, imageEdgeInsetsLeft, imageEdgeInsetsBottom, imageEdgeInsetsRight); 6869// 设置titleEdgeInsets70 CGFloat titleEdgeInsetsTop = endTitleLabelCenter.y-startTitleLabelCenter.y; 7172 CGFloat titleEdgeInsetsLeft = endTitleLabelCenter.x - startTitleLabelCenter.x; 7374 CGFloat titleEdgeInsetsBottom = -titleEdgeInsetsTop; 7576 CGFloat titleEdgeInsetsRight = -titleEdgeInsetsLeft; 7778 btn3.titleEdgeInsets = UIEdgeInsetsMake(titleEdgeInsetsTop, titleEdgeInsetsLeft, titleEdgeInsetsBottom, titleEdgeInsetsRight); 79 }
原文:http://www.cnblogs.com/mancong/p/5066833.html
内容总结
以上是互联网集市为您收集整理的iOS-UIButton-设置button标题和图片位置全部内容,希望文章能够帮你解决iOS-UIButton-设置button标题和图片位置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。