获得徽章 0
- 3160
- #iOS知识小集#「 同时设置UIView圆角与阴影的简单方式 」
如何给一个UIView视图同时加圆角和阴影呢?如果设置UIView.layer.masksToBounds = YES之后,阴影就无法显示了,所以大多数做法是给UIView正常设置圆角,然后再单独绘制阴影叠加(或者叠加一个有阴影的图片),这样就可以达到视觉效果上的圆角与阴影并存。
但通过使用发现,UIView的圆角与阴影是可以共存的,使用方式也是非常的简单(如图1代码所示),需要设置UIView.layer.masksToBounds = NO并且设置UIView.layer.borderWidth = CGFLOAT_MIN即可,效果如图2。
但在使用中发现,某些自定义的View这样设置可能会不生效,这个时候就需要强制设置一下背景色。展开评论8 - 一直以来对锁的内部实现不解,以及一直以为原子操作API是CPU不被打断的操作。针对ARM系统来说直到你了解到有ldxr和stxr两条指令后一切就豁然开朗了,什么自旋锁,原子操作,不公平锁的实现原理就都了解了。514
- #iOS知识小集#「 UITextField监听键盘删除操作 」
当UITextField控件内容不为空的时候,可以通过UITextFiedlDelegate协议中的- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string方法知道用户是否点击了键盘上的删除按钮,判断string.length是否为0即可;而当删除完所有的文字之后,再点击删除按钮,这个回调是不执行的,那么该怎么办呢?
可以这样做:UITextFiled是遵循UIKeyInput协议的,可以重写deleteBackward方法,或者swizzle这个方法,就可以啦,不要忘记执行一下原有方法哦,否则原有点击删除按钮会无效。这种方式不管输入框内是否有内容,都可以知道用户是否点击了键盘上的删除按钮。
另外,如果想实现一些简单的文本输入,比如说微信或者支付宝输入密码的控件,输入验证码控件等,不需要UITextFiled或者UITextView那么多冗余的功能,可以直接自己实现UIKeyInput协议,非常的给力!展开评论8