美文网首页
UIButton 异常情况问题小结

UIButton 异常情况问题小结

作者: Superman168 | 来源:发表于2018-09-18 18:06 被阅读0次

1. setImage 无效果

按钮修改各状态图片无效的问题

如果设置了 button 的 enabled 为 NO 的话,

self.allBtn.enabled = NO;

上次就遇到了,设置为 NO, 再设置

[self.allBtn setImage:[UIImage imageNamed:@"seat_button_cancel_on"] forState:UIControlStateSelected];                    

死活没有效果,经过几番折腾, 看了看文档:

@property(nonatomic,getter=isEnabled) BOOL enabled; // default is YES. if NO, ignores touch events and subclasses may draw differently

默认为YES。 如果 NO,则忽略触摸事件,子类可能(一般)会有不同的绘制,这下就找到原因了。

  • 解决方法
    不要设置

self.allBtn.selected = NO;

设置 userInteractionEnabled 属性 即可 :

self.allBtn.userInteractionEnabled = NO;

然后再设置图片之类的。

2. 点击无响应

最近遇到在 iPhone X 上,底部的按钮点击总是无响应,热区很小,试了很多种方法,填一个父视图、扩大按钮的点击区域等方式,始终是无效果,百思不得其解,今天重新又看一下,找到问题的原因,因为父视图的区域没有把按钮盖住导致的:

  • 这是在 iPhone X 上的视图层次结构
image.png
  • 这是在其他手机上的
image.png

这样是没问题的,找到问题就好办了,扩大父视图的区域,就 OK 了,开始没看出来。

image.png

这样就没事了,就是父视图区域的原因。

Masonry 与 frame 混用导致的问题

Masonry 与 frame 混用导致视图不能正常显示,舍弃手写,或全部手写frame,很坑的问题,还是怪道行太浅。

相关文章

网友评论

      本文标题:UIButton 异常情况问题小结

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