像我們平時app上經(jīng)骋佬恚看到可以分享的按鈕拥坛,剛好碰到最近要用,就自己封裝了一下读处,代碼在這里
- 自動計算屏幕頁數(shù)
- 自動計算當前高度
Untitled-1.gif
Untitled-3.gif
Untitled-4.gif
使用方法:
let sheetView = HBAlertSheetView(iconArray: ["img_invitemessage","img_invitemessage","img_invitemessage","img_invitemessage","img_invitemessage","img_invitemessage","img_invitemessage","img_invitemessage","img_invitemessage","img_invitemessage"], titleArray: ["朋友圈","朋友圈","朋友圈","朋友圈","朋友圈","朋友圈","朋友圈","朋友圈","朋友圈","朋友圈"])
sheetView.delegate = self
let vc = UIAlertController(title: "", message: "\n\n\n\n\n\n", preferredStyle: .actionSheet)
vc.view.addSubview(sheetView)
let action = UIAlertAction(title: "取消", style: .cancel) { (UIAlertAction) in
}
vc.addAction(action)
self.present(vc, animated: true, completion: nil)
特別注意:
1.由于該view
是添加在UIAlertController
上面的糊治,UIAlertController
并不會自適應該視圖,所以需要我們手動的去控制UIAlertController
的message
的大小罚舱,上面的 "\n\n\n\n"
是手動占位符井辜,親測一行的時候是需要2個或者3個占位符,而兩行的時候需要6個占位符馆匿。
2.如果項目需求的是3列而不是效果圖中的4列抑胎,只需要在HBAlertSheetView
中修改幾個值即可。
3.在swift
中使用Selector
需要注意下跟2.3有一些區(qū)別action:#selector(shareToMultPlat(_:))
func shareToMultPlat(_ guesture: UITapGestureRecognizer){
if (delegate != nil) {
let view = guesture.view as! HBAlertSheetSingleView
self.delegate?.didClickOnItemAtIndex(index: view.index!)
}
}