Swift编码总结2
1.swift如何隐藏在 iPad 上的 quicktype 键盘工具栏?
let item = textField.inputAssistantItem item.leadingBarButtonGroups = [UIBarButtonItemGroup]() item.trailingBarButtonGroups = [UIBarButtonItemGroup]() textField.autocorrectionType = .no
2.dismiss当前控制器跳转:
@IBAction func customMoneyClick(_ sender: Any) { self.dismiss(animated: true) { self.delegate?.gotoCustomMoney() } }
3.自定义跳转控制器:
init(withType type: LoginOrRegisterType) { loginOrRegisterType = type super.init(nibNam.e: nil, bundle: nil) modalPresentationStyle = .custom }
4.正则判断:
fileprivate func isValideRegisterName(_ registerName: String) -> Bool { let parttenPrefix = "^[a-zA-Z\\u4e00-\\u9fa5]{1}.*" // 首字母不能是数字 let parttenValideChar = "^[a-zA-Z0-9\\u4e00-\\u9fa5_]+$" // 非法字符 只允许字母、汉字、数字、下划线 let parttenLength = "^[a-zA-Z0-9\\u4e00-\\u9fa5_]{2,16}$" // 长度 2 - 16 var predicate = NSPredicate(format: "SELF MATCHES %@", parttenPrefix) if !predicate.evaluate(with: registerName) { HUDManager.showAutoDismissFailedMessage(GLOBAL_LANGUAGE("昵称首字母只能为字母或汉字!")) return false } }
5.CollectionView实现最低垂直间隔:
let layout = UICollectionViewFlowLayout() layout.minimumLineSpacing = 3.0 layout.minimumInteritemSpacing = CGFloat.leastNormalMagnitude
6.button.isExclusiveTouch = true
ExclusiveTouch的作用是:可以达到同一界面上多个控件接受事件时的排他性,从而避免bug。也就是说避免在一个界面上同时点击多个UIButton导致同时响应多个方法。
用这个来控制UIButton 的ExclusiveTouch属性,这样需要在每个控制器都要设置。可用一句话来代替这样的设置,在AppDelegate启动应用时添加 [[UIButton appearance] setExclusiveTouch:YES];
7.Kingfisher设置图片:
backgroundImageView.kf.setImage(with: URL(string: imageUrlStr), placeholder: UIImage(named:"qianrenqianwei"), options: [.transition(ImageTransition.fade(1)), .keepCurrentImageWhileLoading])
8.super.init()方法写前写后的区别:
先写是先走父类的初始化方法,放在后面,会把子类的覆盖,最好写在前面。
9.UIStackView代码使用:
let stackView: UIStackView = { let view = UIStackView(frame: CGRect.zero) view.axis = .horizontal // 子视图的布局方向 view.alignment = .center // 子视图的对齐方式 view.distribution = .fillEqually // 子视图的分布比例(大小) 每个子视图的高度或宽度保持一致。 return view }()
10.isEmpty函数:
// 使用字符串字面量创建空字符串 var stringA = "" if stringA.isEmpty { print( "stringA 是空的" ) } else { print( "stringA 不是空的" ) } // 实例化 String 类来创建空字符串 let stringB = String() if stringB.isEmpty { print( "stringB 是空的" ) } else { print( "stringB 不是空的" ) } 输出: stringA 是空的 stringB 是空的