Commit 87ebbda7 authored by CZ1004's avatar CZ1004

【优化】弹窗动画添加

parent fe2407d7
......@@ -48,6 +48,7 @@ class AdvTipDeleteView : UIView {
private var heightConstraint: Constraint?
private var centerYConstraint: Constraint?
......@@ -147,7 +148,8 @@ class AdvTipDeleteView : UIView {
self.tipView.snp.makeConstraints { make in
make.center.equalToSuperview()
make.centerX.equalToSuperview()
centerYConstraint = make.centerY.equalToSuperview().offset(self.height + 205).constraint
make.width.equalTo(345)
heightConstraint = make.height.equalTo(410).constraint
}
......@@ -187,6 +189,7 @@ class AdvTipDeleteView : UIView {
make.height.equalTo(48)
make.centerX.equalToSuperview()
}
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
......@@ -262,9 +265,15 @@ extension AdvTipDeleteView : UICollectionViewDataSource, UICollectionViewDelegat
self.deleteLessButton.isHidden = true
self.heightConstraint?.update(offset: 360)
}
// 强制重新布局
self.setNeedsLayout()
self.layoutIfNeeded()
// 先显示背景,然后延迟显示弹框
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
UIView.animate(withDuration: 0.1) {
// 更新约束
self.centerYConstraint?.update(offset: 0)
self.layoutIfNeeded()
}
}
}
}
......
......@@ -6,6 +6,7 @@
//
import Foundation
import SnapKit
enum TipSelectType {
case selectTypeCompressVideo
......@@ -41,7 +42,7 @@ class AdvTipSelectView : UIView {
var tipSelectModel : AdvTipSelectModel?
private var centerYConstraint: Constraint?
lazy var tipView : UIView = {
......@@ -138,9 +139,10 @@ class AdvTipSelectView : UIView {
self.tipView.snp.makeConstraints { make in
make.center.equalToSuperview()
make.centerX.equalToSuperview()
make.width.equalTo(345)
make.height.equalTo(432)
centerYConstraint = make.centerY.equalToSuperview().offset(self.height + 220).constraint
}
self.closeButton.snp.makeConstraints { make in
......@@ -180,6 +182,15 @@ class AdvTipSelectView : UIView {
make.height.equalTo(48)
make.centerX.equalToSuperview()
}
// 先显示背景,然后延迟显示弹框
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
UIView.animate(withDuration: 0.1) {
// 更新约束
self.centerYConstraint?.update(offset: 0)
self.layoutIfNeeded()
}
}
}
}
......
......@@ -6,44 +6,44 @@
//
import Foundation
import UIKit
import SnapKit
class CompressSortView : UIView,UITableViewDelegate,UITableViewDataSource {
var currentIndex : Int = 0
let tableData :[String] = ["Largest","Smallest","Newest","Oldest"]
class CompressSortView: UIView, UITableViewDelegate, UITableViewDataSource {
var currentIndex: Int = 0
let tableData: [String] = ["Largest", "Smallest", "Newest", "Oldest"]
var callBack : callBack<Any> = {sortType in}
private var selectedViewBottomConstraint: Constraint?
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return tableData.count
return tableData.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell : CompressSortCell = tableView.dequeueReusableCell(withIdentifier: "CompressSortCell",for: indexPath) as! CompressSortCell
let cell: CompressSortCell = tableView.dequeueReusableCell(withIdentifier: "CompressSortCell", for: indexPath) as! CompressSortCell
cell.cellTag = indexPath.row
cell.selectButton.setTitle(tableData[indexPath.row], for: .normal)
cell.callBack = {[weak self] cellTag in
guard let self else {return}
cell.callBack = { [weak self] cellTag in
guard let self = self else { return }
self.currentIndex = cellTag as! Int
self.tableView.reloadData()
}
if indexPath.row == currentIndex {
cell.selectButton.layer.borderWidth = 1.0
cell.selectButton.setTitleColor(UIColor(red: 0, green: 0.51, blue: 1, alpha: 1), for: .normal)
}else{
} else {
cell.selectButton.layer.borderWidth = 0
cell.selectButton.setTitleColor(UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1), for: .normal)
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 48 * RScreenW()
}
override init(frame: CGRect) {
super.init(frame: frame)
self.addSubview(self.backView)
......@@ -58,21 +58,26 @@ class CompressSortView : UIView,UITableViewDelegate,UITableViewDataSource {
}
self.selectedView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.left.right.equalToSuperview()
make.height.equalTo(416)
// 初始时将 selectedView 移到屏幕下方
self.selectedViewBottomConstraint = make.bottom.equalToSuperview().offset(416).constraint
}
self.lineView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(16)
make.width.equalTo(57)
make.height.equalTo(4)
make.centerX.equalToSuperview()
}
self.titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
make.top.equalTo(self.lineView.snp.bottom).offset(20)
make.height.equalTo(20)
}
self.tableView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
......@@ -80,7 +85,6 @@ class CompressSortView : UIView,UITableViewDelegate,UITableViewDataSource {
make.height.equalTo(240)
}
self.applyButton.snp.makeConstraints { make in
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
......@@ -88,37 +92,43 @@ class CompressSortView : UIView,UITableViewDelegate,UITableViewDataSource {
make.bottom.equalToSuperview().offset(-46)
}
// 先显示背景,然后延迟显示弹框
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
UIView.animate(withDuration: 0.1) {
// 更新约束
self.selectedViewBottomConstraint?.update(offset: 0)
self.layoutIfNeeded()
}
}
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
lazy var backView : UIView = {
lazy var backView: UIView = {
let view = UIView()
view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5000)
view.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer()
tap.addTarget(self, action: #selector(backViewClick))
view.addGestureRecognizer(tap)
return view
}()
lazy var selectedView : UIView = {
lazy var selectedView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
lazy var lineView : UIView = {
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = UIColor(red: 0.85, green: 0.85, blue: 0.85, alpha: 1)
return view
}()
lazy var titleLabel : UILabel = {
lazy var titleLabel: UILabel = {
let view = UILabel()
view.text = "Sort by"
view.textAlignment = .left
......@@ -127,7 +137,7 @@ class CompressSortView : UIView,UITableViewDelegate,UITableViewDataSource {
return view
}()
lazy var tableView : UITableView = {
lazy var tableView: UITableView = {
let view = UITableView()
view.register(CompressSortCell.classForCoder(), forCellReuseIdentifier: "CompressSortCell")
view.backgroundColor = .clear
......@@ -142,7 +152,7 @@ class CompressSortView : UIView,UITableViewDelegate,UITableViewDataSource {
return view
}()
lazy var applyButton : UIButton = {
lazy var applyButton: UIButton = {
let view = UIButton(type: .custom)
view.setTitle("Apply", for: .normal)
view.layer.cornerRadius = 8
......@@ -153,14 +163,14 @@ class CompressSortView : UIView,UITableViewDelegate,UITableViewDataSource {
return view
}()
@objc func applyAction(){
@objc func applyAction() {
// 传给上层控制器,对照片进行排序
callBack(currentIndex)
// 移除自身
self.removeFromSuperview()
}
@objc func backViewClick(){
@objc func backViewClick() {
// 移除自身
self.removeFromSuperview()
}
......
......@@ -37,7 +37,7 @@ class SecretViewController: BaseViewController {
}
}
let AddAction = SecretActionView()
var AddAction = SecretActionView()
var dataSource:[String] = [] {
didSet {
......@@ -242,12 +242,14 @@ class SecretViewController: BaseViewController {
// 添加的时候需要先弹出广告
popAdverTisement()
AdvManager.shared.finisedCallBack = {
self.AddAction = SecretActionView()
self.AddAction.show();
self.AddAction.callback = { idx in
self.AddImagePicker(idx)
}
}
}else {
self.AddAction = SecretActionView()
self.AddAction.show();
self.AddAction.callback = { idx in
self.AddImagePicker(idx)
......
......@@ -6,20 +6,35 @@
//
import UIKit
import SnapKit
class SecretActionView: UIViewController {
private var selectedViewBottomConstraint: Constraint?
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .colorWithHex(hexStr: "#000000", alpha: 0.5)
setUI()
addTapAction()
}
/// 添加背景点击消失
func addTapAction(){
self.view.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer()
tap.addTarget(self, action: #selector(touchDismiss))
self.view.addGestureRecognizer(tap)
}
private func setUI() -> Void {
view.addSubview(backView)
backView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.bottom.equalTo(view.snp.bottom)
// 初始时将 selectedView 移到屏幕下方
self.selectedViewBottomConstraint = make.bottom.equalToSuperview().offset(1000).constraint
}
lineV.snp.makeConstraints { make in
make.top.equalToSuperview().offset(16)
......@@ -50,6 +65,16 @@ class SecretActionView: UIViewController {
view.layoutIfNeeded()
backView.cornerCut(radius: 20, corner: [.topLeft,.topRight])
// 先显示背景,然后延迟显示弹框
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
UIView.animate(withDuration: 0.1) {
// 更新约束
self.selectedViewBottomConstraint?.update(offset: 0)
self.view.layoutIfNeeded()
}
}
}
var callback:((_ idx:Int)->Void)?
......@@ -63,6 +88,10 @@ class SecretActionView: UIViewController {
}
@objc private func touchDismiss(){
self.dismiss(animated: true)
}
func show() -> Void {
guard let rt = cWindow?.rootViewController else { return }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment