美文网首页
titleEdgeInsets与imageEdgeInsets

titleEdgeInsets与imageEdgeInsets

作者: 奶茶007 | 来源:发表于2017-02-14 14:39 被阅读20次

    场景需求:
    普通状态:

    D95DC9DC-46AF-4DF8-B108-8841230F3861.png

    选中状态:

    3062E27F-7CD0-43A1-A277-0EFD20EB2211.png

    普通状态我通过设置titleEdgeInsets使标题距离左边框20,代码如下:

    CGSize  buttonSize = [button.titleLabel.text sizeWithAttributes:@{NSFontAttributeName:button.titleLabel.font}];
        button.titleEdgeInsets = UIEdgeInsetsMake(0, -(kScreenWidth -buttonSize.width) + 40, 0, 0);
    

    经过仿佛测试比对,发现titleEdgeInsets和实际的frame存在2倍的关系。
    按钮选中出现图片,并且标题位置不变,图片距离右边框30,代码如下:

    CGSize  buttonImageSize = [sender imageForState:UIControlStateSelected].size;
    sender.titleEdgeInsets = UIEdgeInsetsMake(0, -(kScreenWidth -buttonSize.width) - buttonImageSize.width + 40, 0, 0);
    sender.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, -kScreenWidth-buttonSize.width + 60 );
    

    经过仿佛测试比对,发现imageEdgeInsets和实际的frame存在2倍的关系。
    以上是我发现的规律,但原理不明白,如果有高手,请多多指教。。

    相关文章

      网友评论

          本文标题:titleEdgeInsets与imageEdgeInsets

          本文链接:https://www.haomeiwen.com/subject/iubxwttx.html