iOS 将系统自带的button改装成上图片下文字的样子
经常会用到上面是图片,下面是文字的Button。这样的控件可以自定义,但是偶然发现一个直接对系统button进行图片与位置的重新layout实现同样效果的代码,最后使用的按钮是这样的:
代码是通过继承UIButton,然后再重写layoutSubviews方法,对自带的图片和titleLabel进行重新的layout,代码如下:
// // ZZZUpDownButton.h // // Copyright © 2016年 George. All rights reserved. // /** * 这个Button是系统button变成上面图片,下面文字的样子 */ #import <UIKit/UIKit.h> @interface ZZZUpDownButton : UIButton @end // // ZZZUpDownButton.m // // Copyright © 2016年 George. All rights reserved. // #import "ZZZUpDownButton.h" @implementation ZZZUpDownButton // 加载xib都会先走这个方法 - (void)awakeFromNib { [super awakeFromNib]; // 可以在这里对button进行一些统一的设置 self.titleLabel.textAlignment = NSTextAlignmentCenter; self.titleLabel.numberOfLines = 0; } // 在重新layout子控件时,改变图片和文字的位置 - (void)layoutSubviews { [super layoutSubviews]; // 图片上限靠着button的顶部 CGRect tempImageviewRect = self.imageView.frame; tempImageviewRect.origin.y = 0; // 图片左右居中,也就是x坐标为button宽度的一半减去图片的宽度 tempImageviewRect.origin.x = (self.bounds.size.width - tempImageviewRect.size.width) / 2; self.imageView.frame = tempImageviewRect; CGRect tempLabelRect = self.titleLabel.frame; // 文字label的x靠着button左侧(或距离多少) tempLabelRect.origin.x = 20; // y靠着图片的下部 tempLabelRect.origin.y = self.imageView.frame.size.height; // 宽度与button一致,或者自己改 tempLabelRect.size.width = self.bounds.size.width - 40; // 高度等于button高度减去上方图片高度 tempLabelRect.size.height = self.bounds.size.height - self.imageView.frame.size.height; self.titleLabel.frame = tempLabelRect; } @end
以上所述是小编给大家介绍的iOS 将系统自带的button改装成上图片下文字的样子,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
iOS的UI开发中Button的基本编写方法讲解
一.简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 二.按钮的三种状态 normal(普通状态) 默认情况(Default) 对应的枚举常量:UIControlStateNormal highlighted(高亮状态) 按钮被按下去的时候(手指还未松开) 对应的枚举常量:UIControlStateHighlighted disabled(失效状态,不可用状态) 如果enabled属性为NO,就是处于
-
详解iOS中UIButton的三大UIEdgeInsets属性用法
UIEdgeInsets是什么 UIEdgeInsets是什么?我们点进去看一下: typedef struct UIEdgeInsets { CGFloat top, left, bottom, right; // specify amount to inset (positive) for each of the edges. values can be negative to 'outset' } UIEdgeInsets; UIEdgeInsets是个结构体类型.里面有四个参数,分别是:
-
iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片上下垂直居中对齐
UIEdgeInsets typedef struct UIEdgeInsets { CGFloat top, left, bottom, right; // specify amount to inset (positive) for each of the edges. values can be negative to 'outset' } UIEdgeInsets; 在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets.titleEdgeInsets
-
IOS代码笔记之勾选"记住密码"整体button
本文实例为大家分享了IOS记住密码整体button 的实现代码,供大家参考,具体内容如下 一.效果图 二.工程图 三.代码 RootViewController.h #import <UIKit/UIKit.h> @class BECheckBox; @interface RootViewController : UIViewController { BECheckBox *passwordCheck; } @property(nonatomic,retain)BECheckBox *pass
-
详解iOS中Button按钮的状态和点击事件
一.按钮的状态 1.UIControlStateNormal 1> 除开UIControlStateHighlighted.UIControlStateDisabled.UIControlStateSelected以外的其他情况,都是normal状态 2> 这种状态下的按钮[可以]接收点击事件 2.UIControlStateHighlighted 1> [当按住按钮不松开]或者[highlighted = YES]时就能达到这种状态 2> 这种状态下的按钮[可以]接收点击事件 3
-
iOS应用开发中导航栏按钮UIBarButtonItem的添加教程
1.UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到. 我们看看它的如何使用: 下面的图显示了导航控制器的流程.最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕:当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕.相应地,在对象管理上,导航控制器使用了导航堆栈.根视图控制器在堆栈最底层,接下来入栈的是General视图控制器和Auto-Lock
-
iOS自定义button抖动效果并实现右上角删除按钮
遇到过这种需求要做成类似与苹果删除软件时的动态效果. 1.长按抖动; 2.抖动时出现一个X; 3.点击x,删除button; 4.抖动时,点击按钮,停止抖动; 下面是我的设计思路: 1.继承UIButton: 2.给button在右上角添加一个按钮: 3.给button添加长按手势: 4.给button添加遮盖,抖动时可以拦截点击事件: 有更好的做法,还请斧正. // .m文件 #import "DZDeleteButton.h" #import "UIView+Extens
-
iOS 将系统自带的button改装成上图片下文字的样子
经常会用到上面是图片,下面是文字的Button.这样的控件可以自定义,但是偶然发现一个直接对系统button进行图片与位置的重新layout实现同样效果的代码,最后使用的按钮是这样的: 代码是通过继承UIButton,然后再重写layoutSubviews方法,对自带的图片和titleLabel进行重新的layout,代码如下: // // ZZZUpDownButton.h // // Copyright © 2016年 George. All rights reserved. // /**
-
IOS 播放系统提示音使用总结(AudioToolbox)
IOS 播放系统提示音使用总结(AudioToolbox) 开发过程中需要用到苹果自带的系统提示音,下面我总结了一下关于系统提示音播放的方法 第一步首先得导入AudioToolbox框架 #import <AudioToolbox/AudioToolbox.h> 播放系统自带的提示声 播放系统自带的提示声很简单,只需要两行代码就能搞定了: //定义一个SystemSoundID SystemSoundID soundID = 1000;//具体参数详情下面贴出来 //播放声音 AudioSer
-
Android编程调用系统自带的拍照功能并返回JPG文件示例【附demo源码下载】
本文实例讲述了Android编程调用系统自带的拍照功能返回JPG文件.分享给大家供大家参考,具体如下: package com.eboy.testcamera1; import java.io.File; import java.io.FileOutputStream; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bund
-
Android 开发系统自带语音模块应用
需求:项目中需要添加语音搜索模块,增加用户体验 解决过程:在网上搜到语音搜索例子,参考网上代码,加入到了自己的项目,完成产品要求.这个问题很好解决,网上能找到很多的资料,但是没有直接导入工程就能用的例子,我这里写了一个完整的Demo,代码可以直接粘贴到自己项目中去,实现了 语音搜索,并将搜索结果展示. 语音搜索大致流程:启动系统自带的Intent,Intent参数设置为RecognizerIntent.ACTION_RECOGNIZE_SPEECH,再加上一些提示参数 intent.putExt
-
Android使用系统自带的相机实现一键拍照功能
今天分享的是用系统自带的相机实现一键拍照功能. public class MainActivity extends AppCompatActivity { private static final int TAKE_PHOTO = 100; private ImageView iv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConte
-
iOS多控制器实现带滑动动画第1/2页
本文实例为大家分享了iOS多控制器实现带滑动动画的具体代码,供大家参考,具体内容如下 主控制器 ,管理控制器 .h文件 //宏 #define kScreenWidth [UIScreen mainScreen].bounds.size.width #define kScreenHeight [UIScreen mainScreen].bounds.size.height #import "MYMainViewController.h" #import "MYFirstVie
-
JavaScript获取系统自带的颜色选择器功能(图)
效果如图所示:下面是获取系统自带的颜色选择器的代码: function $(obj) { return document.getElementById(obj); } function pickColor() { if (!window.isIE) return; var sColor = $('dlgHelper').ChooseColorDlg(); var color = sColor.toString(16); while (color.length [Ctrl+A 全选 注:如需引入外
-
用系统自带工具在安装系统时给新硬盘分区图解_图解硬盘分区
用系统自带工具在安装系统时给新硬盘分区图解 screen.width-461) window.open('/upload/20071011135718630.jpg');" src="http://files.jb51.net/upload/20071011135718630.jpg" border=0> screen.width-461) window.open('/upload/20071011135719793.jpg');" src="htt
-
利用iOS实现系统相册大图浏览功能详解
前言 本文主要给大家介绍了关于iOS实现系统相册大图浏览功能的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 最终效果图 大图浏览 实现过程 创建两个UICollectionView分别放置大图和缩略图 实现大图和缩略图的联动 实现当前展示的大图对应的缩略图放大效果 实现原理 创建collectionView非常简单,只要正常创建就好,值得注意的是:由于需要当前展示的图片的缩略图始终保持在屏幕中间位置,所以在创建缩略图的collectionView的时候需要对coll
-
两种iOS调用系统发短信的方法
一.程序外调用系统发短信 这个方法其实很简单,直接调用openURL即可: NSURL *url = [NSURL URLWithString:@"sms://15888888888"]; [[UIApplication sharedApplication]openURL:url]; 二.程序内调用系统发短信 这种方法有一个好处就是用户发短信之后还可以回到App. 首先要导入MessageUI.framework,并引入头文件: #import <MessageUI/Messag
随机推荐
- PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问题
- 创建Guid 的代码
- Mongodb实现的关联表查询功能【population方法】
- iOS 隐私权限和通过openURL实现跳转实例
- Python实现控制台输入密码的方法
- C#异常处理总结及简单实例
- js文件缓存之版本管理详解
- MySQL重定位数据目录的方法
- php7安装yar扩展的方法详解
- SSH在登录服务器后如何显示基础信息
- MySQL优化之缓存优化(续)
- MyBatis多对多映射初识教程
- MySQL高可用MMM方案安装部署分享
- JAVA微信扫码支付模式二线上支付功能实现以及回调
- 详解Android中使用Notification实现进度通知栏(示例三)
- 详解Spring Boot 属性配置和使用
- C#语言中的修饰符汇总
- 使用策略模式实现报警服务示例详解(短信报警)
- Java ExecutorService四种线程池使用详解
- 解决PyCharm不运行脚本,而是运行单元测试的问题