码迷,mamicode.com
首页 > 其他好文 > 详细

UIButton的探秘

时间:2017-01-14 09:29:48      阅读:355      评论:0      收藏:0      [点我收藏+]

标签:ide   htm   ted   移动   button   gic   base   str   close   

原文链接

sizeToFit()和sizeThatFits(_:)

sizeToFit()会调用sizeThatFits(_:)方法,将现在的frame作为参数。然后根据函数返回的结果更新view。

sizeToFit will simply call through to sizeThatFits: passing the view's current size as the argument. It will then update the view's frame based on the value it gets back. So all the important logic goes in sizeThatFits:, and this is the method you should override for your own custom controls.

UIButton标题的shadow效果与反转

        myButton?.titleLabel?.shadowOffset = CGSizeMake(2.0, 2.0)
        myButton?.setTitleShadowColor(UIColor.redColor(), forState: .Normal)
//        myButton?.showsTouchWhenHighlighted = true
        myButton?.reversesTitleShadowWhenHighlighted = true


技术分享

技术分享

加上选中态亮瞎眼的效果

        myButton?.showsTouchWhenHighlighted = true


技术分享

UIButton的布局与UIEdgeInsets

有三个UIEdgeInsets

  1. contentEdgeInsets
    使用sizeThatFits(_:)计算时用到。
  2. titleEdgeInsets
    使用sizeThatFits(_:)计算时不会用到。
  3. imageEdgeInsets
    使用sizeThatFits(_:)计算时不会用到。

You can specify a different value for each of the four insets (top, left, bottom, right). A positive value shrinks, or insets, that edge—moving it closer to the center of the button. A negative value expands, or outsets, that edge.

举例说明

  • contentEdgeInsets
    技术分享
    left和right都是30,会使左边向中间移动30pt,右边向中间移动30pt。也就是左间距和右间距都是30pt。由于contentEdgeInsets参与sizeThatFits(_:)的计算,所以最终表现为整个button被拉宽。
  • titleEdgeInsets
    技术分享
    保持contentEdgeInsets不变,设置titleEdgeInsets的left为15。由于titleEdgeInsets在sizeThatFits(_:)中不参与,因此button没有被拉宽,只是titleLabel的左边向右(中心)移动了15pt,右边保持不变。导致字符串没有被显示全。
    技术分享
    设置titleEdgeInsets的right为-15,结果是titleLabel的右边向右移动了15pt,从而整体的显示范围不变。
  • imageEdgeInsets

图像在右,标题在左

button.transform = CGAffineTransformMakeScale(-1.0, 1.0);
button.titleLabel.transform = CGAffineTransformMakeScale(-1.0, 1.0);
button.imageView.transform = CGAffineTransformMakeScale(-1.0, 1.0);

链接

UIButton的探秘

标签:ide   htm   ted   移动   button   gic   base   str   close   

原文地址:http://www.cnblogs.com/huahuahu/p/UIButton-de-tan-mi.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!