iOS自定义提示框Masonry布局实现

iOS 的自定义提示框,算是界面交互里挺常见但又容易踩坑的一块。用系统的UIAlertController?太死板;纯手撸布局?太麻烦。所以推荐你用Masonry来搞定这事儿,链式语法写起来贼顺手,清晰又不啰嗦。

提示框的 UI,一般就几个东西:背景层、内容框、文字、按钮。用UIView自己拼就行,布局全交给Masonry,轻轻松松搞定边距和对齐。比如加个UILabel显示信息:

let label = UILabel()
view.addSubview(label)
label.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16).isActive = true
label.topAnchor.constraint(equalTo: view.topAnchor, constant: 32).isActive = true
label.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16).isActive = true

逻辑交互这块也不难,按钮响应事件用addTarget绑定一下就行,像下面这样:

let button = UIButton()
button.setTitle("确认", for: .normal)
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)

还有动画,建议用UIView.animate加点淡入淡出的效果,提示框看起来会舒服不少。

想用Masonry?在Podfile里加上:

target 'YourTargetName' do
  use_frameworks!
  pod 'Masonry'
end

跑个pod install,就可以愉快地引入用了。

如果你追求样式灵活性,可以参考一下SlCustomAlertView,自己封装一套提示框组件。背景透明度、按钮颜色、圆角动画,全都可以按需配置,项目里复用性也更高。

,用Masonry做弹框,布局方便,代码简洁,扩展性也强。你要是还在硬撸约束,真该试试这个方式。

zip 文件大小:11.79KB