Swift重写UIButton的图片和标题的位置

import UIKit

class ResetBtn: UIButton {

    let IMAGE_RATIO :CGFloat = 0.7  // 图片占整个按钮高度的比例

    let TITLE_FONT:CGFloat = 13   // 设置按钮标题字体默认的大小
    override init(frame: CGRect) {

        super.init(frame: frame)

        self.setImageAndTitle()

    }

    required init?(coder aDecoder: NSCoder) {

        super.init(coder: aDecoder)

         self.setImageAndTitle()
    }

    func setImageAndTitle(){

        self.imageView?.contentMode = .Center   // 设置图片显示的模式  居中

        self.titleLabel?.textAlignment = .Center  // 文本文字居中显示

        self.titleLabel?.font = UIFont.systemFontOfSize(TITLE_FONT) //文本文字默认大小
        self.setTitleColor(UIColor.lightGrayColor(), forState: .Normal)  // 文本文字默认颜色

    }

 /// 重写highlighted 状态

    override var  highlighted : Bool {

            set{

            }
            get{

                return false
            }

    }

    override func imageRectForContentRect(contentRect: CGRect) -> CGRect {

        let imageX:CGFloat = 0
        let imageY:CGFloat = 0
        let imageW:CGFloat = self.frame.size.width
        let imageH:CGFloat = self.frame.size.height * IMAGE_RATIO

        return CGRectMake(imageX, imageY, imageW, imageH)

    }

    override func titleRectForContentRect(contentRect: CGRect) -> CGRect {

        let titleX:CGFloat = 0
        let titleY:CGFloat = self.frame.size.height * IMAGE_RATIO

        let titleW:CGFloat = self.frame.size.width
        let titleH:CGFloat = self.frame.size.height * (1.0 - IMAGE_RATIO)

        return CGRectMake(titleX, titleY, titleW, titleH)

    }

}
时间: 2024-10-27 05:37:17

Swift重写UIButton的图片和标题的位置的相关文章

备忘:UIButton 的图片和标题 向左对齐

UIButton setImage 和 setTitle之后,默认的 image和title 对齐方式是居中, 由于 title 长度不固定, 所以如果要几个这样有image有title的按钮纵向排列对齐, 无论你怎么调整 imageEdgeInsets和titleEdgeInsets,都有可能导致前面图片对得不整齐, 所以,干脆来个向左对齐!!简化处理!! 记住了,这么设置: btn.contentHorizontalAlignment = UIControlContentHorizontal

UIButton图片文字控件位置自定义(图片居右文字居左、图片居中文字居中、图片居左文字消失等)

在开发中经常会碰到需要对按钮中的图片文字位置做调整的需求.第一种方式是通过设置按钮中图片文字的偏移量.通过方法setTitleEdgeInsets和setImageEdgeInsets实现 代码如下: /*!**方式一***/ - (void)updateBtnStyle_rightImage:(UIButton *)btn { CGFloat btnImageWidth = btn.imageView.bounds.size.width; CGFloat btnLabelWidth = btn

word中更改图片和标题之间的垂直距离

word中插入图片后,往往需要给图片加上标题. 你插入图片和给图片插入标题时,word用的是默认的格式给你插入的图片和标题. 假如原来的paragraph是2倍行距,你的图片和标题之间的距离也是2倍行距,这样显的你的图片和标题之间的距离特别大. 插入完成后,你想调节图片和标题的距离,就不可能了.因为行距是前一行和后一行直接的距离,但是图片并没有行距. 解决方法如下: 1.删除你的图片和图片标题. 2. 在你插入图片的上一行之下插入两个回车 3. 选中你插入的回车,邮件点击"段落",把行

UIButton的图片和文字相对位置调整

通常,如果直接设置UIButton的图片和文字,默认的两者相对位置可能不是我们想要的,那么需要进行调整. 需要用到的函数如下: UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) top,left,bottom,right分别表示向各个方向的移动量 实例说明: UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(50, 100,

UIButton左边图片右边文字的做法

UIImage *yuyinImage = [UIImage imageNamed:@"yuyin.png"]; [soundButton setImage:yuyinImage forState:UIControlStateNormal]; [soundButton setImage:yuyinImage forState:UIControlStateSelected]; [soundButton setImage:yuyinImage forState:UIControlState

jQuery hover事件鼠标滑过图片半透明标题文字滑动显示隐藏

1.效果及功能说明 hover事件制作产品图片鼠标滑过图片半透明,标题文字从左到右滑动动画移动显示隐藏 2.实现原理 首先把效果都隐藏,然后定义一个伪类来触发所有的效果,接下来当触发伪类后会有一个遍历停止所有的效果,从新触发效果就是标题的从左边淡出和背景颜色的变化,当鼠标离开图片后触发一个遍历,停止所有动画标题回到原处不见,背景颜色变回原样 主要的方法 $(".section  ul li").hover(function() //伪类的触发 $(this).find(".r

UIButton 文字图片排列

UIButton默认的是:图片-文字水平排列,所以不需要进行调整. 1.文字-图片 水平显示,文字在前,图片再后 [btn setTitleEdgeInsets:UIEdgeInsetsMake(0, -imgArrow.size.width, 0, imgArrow.size.width)]; [btn setImageEdgeInsets:UIEdgeInsetsMake(0, btn.titleLabel.bounds.size.width, 0, -btn.titleLabel.boun

[iOS]详解调整UIButton的title和image的位置

很多次,系统默认的UIButton不能满足需求,每次都是查了很多资料,最后还是用最复杂的方式来修改button的标题和图片的位置,今天,花些时间来梳理一下这方面的知识... UIButton的默认布局是:title在右,image在左; 很多时候我们需要的是title在左边,或者title在下面,这时就需要调整UIButton的TitleLabel和ImageView的位置了,查了很多资料,要么零零散散的介绍,要么就是特别复杂的实现;经过一段时间的学习,在这里总结一下实现的方式; 一种是设置UI

ios代码调整button图片image文字title位置

自定义一个button,要调整 button中的image(注意,不是backgroundImage) 和  title 文字的位置,只需要重写  Button类独对应的两个方法即可: 首先,我们来创建一个 SuperButton继承自 UIButton // // SuperButton.h // SuperButton // // Created by 杨斌 on 14/12/25. // Copyright (c) 2014年 杨斌. All rights reserved. // #im