🦎 🍞
IgyToast
安全区域感知,兼容iPhone X 🤹📲 键盘处理⌨️ 旋转兼容🔄
使用
基本使用
导入模块
import IgyToast
从代码中创建自定义视图,并设置其高度约束以便IgyToast知道其垂直边界
lazy var customView: UIView = {
let view = UIView(frame: .zero)
view.backgroundColor = .green
let label = UILabel(frame: .zero)
label.text = "Custom view"
label.textAlignment = .center
label.center = view.center
view.addSubview(label, with: IgyToast.ConstraintsSettings(edgeInsets: .zero))
label.heightAnchor.constraint(equalToConstant: 100).isActive = true
return view
}()
现在使用以下代码显示toast
Toast.current.show(customView)
或者,使用从XIB或Storyboard创建的视图,它们的尺寸已经设置了约束
Toast.current.show(customViewFromXIB)
如果Toast内容的尺寸变化
Toast.current.layoutVertically()
可以通过编码的方式来隐藏
Toast.current.hide()
...
Toast.current.hide {
//called after hide animation finished
}
设置背景颜色
Toast.current.backgroundColor = .white
高级使用
如果IgyToast的内容高于屏幕可用高度,则IgyToast的内容将垂直可滚动。
您可以选择提供Header
视图或/和Footer
视图,这些视图不会是滚动内容的一部分。
let title: UILabel = .makeZero()
title.font = .systemFont(ofSize: 24, weight: .heavy)
title.text = "Title"
let titleContainer: UIView = .makeZero()
titleContainer.addSubview(title, with: .init(left: 16, right: 16, top: 8, bottom: 20))
let field: UITextField = .makeZero()
field.placeholder = "tap me"
let fieldContainer: UIView = .makeZero()
fieldContainer.addSubview(field, with: .init(left: 16, right: 16, top: 16, bottom: 16))
let imageView = UIImageView(image: #imageLiteral(resourceName: "toast"))
imageView.contentMode = .scaleAspectFit
imageView.heightAnchor.constraint(equalToConstant: 200).isActive = true
let stack = UIStackView(arrangedSubviews: [fieldContainer, imageView])
stack.axis = .vertical
Toast.current.show(stack, header: titleContainer)
安装
Cocoapods
IgyToast已在Cocoapods可用!在您的项目中配置Cocoapods之后,只需在Podfile中添加以下内容:
pod 'IgyToast'
然后运行pod install
示例用法
例如,请查看这个项目
其他
IgyToast包含名为ConstraintsSettings
的类,其中包含从代码中添加约束的便捷方法,归功于sssbohdan
要求
- Swift 4.2+
- iOS 11.0+
贡献
欢迎提交拉取请求、功能请求和错误报告