首先要限制图标的大小,否则可能因为图标太大,会把文件撑出按钮区域,从而完全看不到文字,这点没找到UIButton相关配置方法。我们可以修改原图,或者直接在代码里面调整图标的大小,下面是一个调整图标大小的方法- (UIImage*)adjustImage:(UIImage *)inImage width:(CGFloat)width

height:(CGFloat)height {

CGFloat destW = width;

CGFloat destH = height;

CGFloat sourceW = width;

CGFloat sourceH = height;

CGImageRef imageRef = inImage.CGImage;

CGContextRef bitmap = CGBitmapContextCreate(NULL,

destW,

destH,

CGImageGetBitsPerComponent(imageRef),

4*destW,

CGImageGetColorSpace(imageRef), kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst);

CGContextDrawImage(bitmap, CGRectMake(0, 0, sourceW, sourceH), imageRef);

CGImageRef ref = CGBitmapContextCreateImage(bitmap);

UIImage *result = [UIImage imageWithCGImage:ref];

CGContextRelease(bitmap);

CGImageRelease(ref);

return result;

}

然后按钮的配置和网上的一样,这个已经写烂了,我就不多解释,下面提供一段我测试成功的代码片段UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

[btn setFrame:CGRectMake(32, 10, 80, 60)];

[btn setTitle:@"触屏拍摄" forState:UIControlStateNormal];

UIImage *img = [UIImage imageNamed:@"touch.png"];

img = [self adjustImage:img width: 32 height:32];

[btn setImage:img forState:UIControlStateNormal];//button的填充图片

[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

btn.backgroundColor = [UIColor redColor];

btn.imageEdgeInsets = UIEdgeInsetsMake(- (btn.frame.size.height - btn.titleLabel.frame.size.height- btn.titleLabel.frame.origin.y),(btn.frame.size.width -btn.titleLabel.frame.size.width)/2.0f -btn.imageView.frame.size.width, 0, 0);

btn.titleEdgeInsets = UIEdgeInsetsMake(btn.frame.size.height-btn.imageView.frame.size.height-btn.imageView.frame.origin.y, -btn.imageView.frame.size.width, 0, 0);

button html ios,iOS实现UIButton图标和文字上下布局相关推荐

  1. 【iOS】UIButton 图标在上文字在下

    iOS默认的UIButton是图片在左文字在右,但是很多时候需求是图片在上文字在下(如效果图1.效果图2),因此想到,通过写一个JXButton继承自UIButton,并重写相关方法即可,以后项目中需 ...

  2. android button 中文字位置设置,iOS开发-- 设置UIButton的文字显示位置、字体的大小、字体的颜色...

    btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlS ...

  3. iphone11右上角信号显示_原来,iOS 11移动信号图标里竟然隐藏着 iPhone 8的巨大秘密...

    原标题:原来,iOS 11移动信号图标里竟然隐藏着 iPhone 8的巨大秘密 在 iOS 11 中有一个不起眼的改变,那就是 iOS 11的移动信号强度图标由以前 iOS 10 的圆点改成了原始的阶 ...

  4. iOS一键生成所有图标

    记录一个iOS开发一键生成图标的网站 https://icon.wuruihong.com

  5. iOS 图标和文字自定按钮

    在项目开发中,经常需要用到按钮,系统默认的按钮是图标在左边,标题在右边.但往往实际情况是多变的,有时候图标在右边.有时候图标在上面,这个时候系统的按钮往往无法满足需求,所以我们需要自定义按钮来满足需求 ...

  6. iOS回顾笔记( 02 ) -- 由九宫格布局引发的一系列“惨案”

    iOS回顾笔记( 02 ) -- 由九宫格布局引发的一系列"惨案" 前言(扯几句淡先) 回顾到学习UI过程中的九宫格布局时,发现当时学的东西真是不少. 这个阶段最大的特点就是:知识 ...

  7. ios 代码设置控件宽高比_IOS开发入门之iOS一套代码适配所有iPhone手机布局实现方案...

    本文将带你了解IOS开发入门iOS一套代码适配所有iPhone手机布局实现方案,希望本文对大家学IOS有所帮助. iOS一套代码适配所有iPhone手机布局实现方案 本文主要是讲述一套代码适配所有iP ...

  8. iOS一套代码适配所有iPhone手机布局实现方案

    iOS一套代码适配所有iPhone手机布局实现方案 本帖主要是讲述一套代码适配所有iPhone手机布局解决方案.要点是了解原理和思想. 多个项目采用了这种布局方式,感觉良好,实际情况还是要看看你们UI ...

  9. 移动开发(IOS) – iOS系统架构

    移动开发(IOS) – iOS系统架构 1.iOS系统架构的四个层次 1.1.可触摸层(Cocoa Touch):为应用程序开发提供各种有用的框架,并且大部分均与用户界面有关,本质上来说它负责用户在i ...

  10. 报错 Building for iOS, but the embedded framework ‘xxx.framework‘ was built for iOS + iOS Simulator

    1.问题描述 我在Xcode13.4上面运行一个集成了.a文件的工程之后报错,上一周还是好好的,突然就不行了,不知道咋回事 报错信息如下: Building for iOS, but the embe ...

最新文章

  1. 面试官:你说熟悉MySQL,那来谈谈InnoDB怎么解决幻读的?
  2. Arduino学习笔记21
  3. wps表格粗线和细线区别_学术论文表格制作方法解读
  4. 【自动驾驶】30.c++实现基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换(附代码)
  5. linux高端内存申请,Linux高端内存
  6. LeetCode 1123. 最深叶节点的最近公共祖先(递归比较子树高度)
  7. linux查看非注释行_Linux筛除空行和注释行的技巧
  8. python堆模块_python内置堆模块
  9. 12款优秀jQuery Ajax分页插件和教程
  10. 期货市场技术分析06_长期图表和商品指数
  11. c语言考试常考大题,C语言题库经典题 考试常考题.doc
  12. vc 实现打印机打印功能
  13. BIOS实战之Super IO-Smart Fan
  14. 画图软件Java实现(面向对象程序设计)
  15. HDU2370——Convert Kilometers to Miles
  16. python如何创建excel文件_python创建Excel文件数据的方法
  17. 串口服务器 linux,基于Linux的串口服务器设计与实现
  18. Windows phone 8 学习笔记(8) 定位地图导航(转)
  19. delphi的connection closed Gracefully错误
  20. 设计模式之工厂方法模式(创建型)

热门文章

  1. 输出毫秒_毫秒级网络监控(网络示波器)
  2. python通用数据库连接_python-sqlalchemy 使用学习记录之基础连接数据库安装接篇...
  3. html javascript 表格id,javascript 获取表格中元素id的实现代码
  4. 【转】mutation接收单个参数和多个参数
  5. 关于git远程分支操作
  6. 安装时后的idea,项目不能运行,pom.xml文件不能下载到本地仓库,maven配置是正确的...
  7. artDialog双击会关闭对话框的修改
  8. 【译文】Nodejs官方文档(Part 3 断言测试)
  9. CISCO路由器的备份与还原(2)
  10. 基于.NET平台的分层架构实战(八)——数据访问层的第二种实现:SQLServer+存储过程...