摘要:
两个UILabel放在同一行,需要设置它们的抗压缩和抗拉伸属性。 class MyView: UIView { lazy var leftLabel = UILabel() lazy var rightLabel = UILabel() override init(frame: CGRect) { 阅读全文
摘要:
当前View里面有两个View,绿色的bigView和红色的smallView,smallView在bigView里面。现在要在当前View的touchesBegan方法判断点击位置是否在最里层的smallView里。 有多种方法可以判断。其实它们本质都是一样的,最重要的是转换参考系。 要想判断po 阅读全文
摘要:
原来用GPUImage实现,采用的这篇博客介绍的方法,但是有两个比较严重的问题: App启动后第一次使用播放器时会造成主线程卡住1~5秒,越老的机型越长,第二次和以后就完全不卡,直到下次启动。这应该是GPUImage某处初始化造成的,我没有找到具体位置。 播放某些视频时,画面中亮白色的位置会出现“过 阅读全文
摘要:
协议protocol一般用来做回调监听,当多个地方需要添加回调监听时,就要用Set集合来管理,Set中的元素需要实现Hashable方法,而协议protocol是不能实现Hashable方法的,会报如下错误。 Protocol 'MyProtocol' as a type cannot confor 阅读全文
摘要:
通常使用多语言在Resource里配置Localizable文件,添加需要的语言即可。 使用String的扩展方法如下: 如果需要占位符,%d表示数字,%@表示字符串,用localizedWithArgs方法 func localized() -> String { return NSLocaliz 阅读全文
摘要:
private var bgImageGaussDataDict:[Int:Data] = [:] var guassImageData = bgImageGaussDataDict[gauss] if guassImageData == nil { let image = bgImageOrigi 阅读全文
摘要:
如果键盘弹起的时候,获得焦点也就是becomeFirstResponder的输入框位置会被键盘挡住,那么系统会自动将输入框所在的整体布局向上移动。这种移动不一定是我们想要的,如果想要更精准的控制,就需要在键盘弹起之前主动移动输入框到键盘上方,这样系统就不会自动移动整体布局了。 keyboardWil 阅读全文
摘要:
iOS 界面开发最重要的是ViewController和View,ViewController是View的控制器,也就是一般的页面,用来管理页面的生命周期(它相当于安卓里的Activity,两者很像,又有一些差异)。 ViewController的特点是它有好几种。一种最基本的UIViewContr 阅读全文
摘要:
let myView = UIView() myView.bounds = CGRect(x: 0, y: 0, width: 300, height: 100) myView.addGradientLayerWithCorner(cornerRadius: 20, lineWidth: 10, c 阅读全文
摘要:
相比于安卓开发来说,iOS开发中最麻烦的事情就是手动计算高度了。 在UITableView或UICollectionView列表的item、header、footer中,如果列表项的高度不是固定的,那么就需要自己计算实际高度,然后通过tableView(_ tableView: UITableVie 阅读全文