zoukankan      html  css  js  c++  java
  • 关于UIButton中,文字和图片交换位置的代码

    UIButton中,如果文字和图片都同时存在的话,系统默认图片在左边,文字在右边,有些UI需求是图片在右边,文字在左边,这就需要用代码调试,使UIButton中两个元素的位置发生交换。

    设置UIButton的两个属性可以达到交换的目的,这两个属性是titleEdgeInsets和imageEdgeInsets.

    UIEdgeInsets为一个结构体

    typedef struct UIEdgeInsets {
          CGFloat top, left, bottom, right;     
    } UIEdgeInsets;

    这个结构体表示上,左,下,右的偏移量,

    top : 为正数的时候,是往下偏移,为负数的时候往上偏移;

    left : 为正数的时候往右偏移,为负数的时候往左偏移;

    bottom : 为正数的时候往上偏移,为负数的时候往下偏移;

    right :为正数的时候往左偏移,为负数的时候往右偏移;

    两个元素,文字和图片交换的第一步,要取得这两个元素的宽度值

    CGFloat labelWidth = button.titleLabel.intrinsicContentSize.width; //注意不能直接使用titleLabel.frame.size.width,原因为有时候获取到0值
    CGFloat imageWidth = button.imageView.frame.size.width;
    CGFloat space = 8.f; //定义两个元素交换后的间距

    第二步设置button偏移量属性

    button.titleEdgeInsets = UIEdgeInsetsMake(0, - imageWidth - space,0,imageWidth + space);
    button.imageEdgeInsets = UIEdgeInsetsMake(0, labelWidth + space, 0,  -labelWidth - space);
  • 相关阅读:
    python中的字典
    python中的元组操作
    python中的列表
    python中的内建函数
    python中格式化字符串
    34 哈夫曼编码
    33 构造哈夫曼树
    32 哈夫曼树
    31 树和森林的遍历
    30 森林和二叉树的转化(二叉树与多棵树之间的关系)
  • 原文地址:https://www.cnblogs.com/csdnmc/p/6703451.html
Copyright © 2011-2022 走看看