90 lines
3.0 KiB
Swift
90 lines
3.0 KiB
Swift
//
|
|
// WP_TabButton.swift
|
|
// WallpaperHD_Live
|
|
|
|
|
|
import UIKit
|
|
import CYLTabBarController
|
|
|
|
class WP_TabButton: CYLPlusButton,CYLPlusButtonSubclassing {
|
|
|
|
static func plusButton() -> Any {
|
|
let button = WP_TabButton()
|
|
|
|
button.setBackgroundImage(UIImage(named: "icon_add"), for: .normal)
|
|
// button.sizeThatFits(CGSize(width: 40, height: 40))
|
|
button.bounds = CGRect(x: 0, y: 0, width: 30, height: 30)
|
|
button.titleLabel?.textAlignment = .center
|
|
|
|
button.titleLabel?.font = UIFont.systemFont(ofSize: 15)
|
|
|
|
button.adjustsImageWhenHighlighted = false
|
|
button.addTarget(button, action: #selector(clickbtn), for: .touchUpInside)
|
|
button.sizeToFit()
|
|
|
|
return button
|
|
}
|
|
|
|
|
|
@objc func clickbtn(){
|
|
let tabBarController = WP_TabButton.cyl_tabBarController()
|
|
let viewController = tabBarController.selectedViewController
|
|
|
|
let vc = WP_HomeVC()
|
|
vc.modalPresentationStyle = .custom
|
|
viewController?.present(vc, animated: true, completion: nil)
|
|
}
|
|
override func sizeThatFits(_ size: CGSize) -> CGSize {
|
|
return CGSize(width: 30, height: 30)
|
|
}
|
|
|
|
/// MARK: 插入位置
|
|
static func indexOfPlusButtonInTabBar() -> UInt {
|
|
return 1
|
|
}
|
|
|
|
static func multiplier(ofTabBarHeight tabBarHeight: CGFloat) -> CGFloat {
|
|
return 0.7
|
|
}
|
|
|
|
|
|
static func constantOfPlusButtonCenterYOffset(forTabBarHeight tabBarHeight: CGFloat) -> CGFloat {
|
|
let screenHeight = UIScreen.main.nativeBounds.size.height;
|
|
if screenHeight == 2436 || screenHeight == 1792 || screenHeight == 2688 || screenHeight == 1624 {
|
|
return -40
|
|
}
|
|
return -30
|
|
}
|
|
|
|
static func shouldSelectPlusChildViewController() -> Bool {
|
|
return true
|
|
}
|
|
|
|
override func layoutSubviews() {
|
|
super.layoutSubviews()
|
|
|
|
// tabbar UI layout setup
|
|
// let imageViewEdgeWidth:CGFloat = self.bounds.size.width * 0.5
|
|
let imageViewEdgeWidth:CGFloat = 40
|
|
// let imageViewEdgeHeight:CGFloat = imageViewEdgeWidth * 0.5
|
|
let imageViewEdgeHeight:CGFloat = 40
|
|
let centerOfView = self.bounds.size.width * 0.5
|
|
let labelLineHeight = self.titleLabel!.font.lineHeight
|
|
let verticalMargin = (self.bounds.size.height - labelLineHeight - imageViewEdgeHeight ) * 0.5
|
|
|
|
let centerOfImageView = verticalMargin + imageViewEdgeHeight * 0.5
|
|
let centerOfTitleLabel = imageViewEdgeHeight + verticalMargin * 2 + labelLineHeight * 0.5 + 10
|
|
|
|
//imageView position layout
|
|
self.imageView!.bounds = CGRect(x:0, y:0, width:30, height:30)
|
|
self.imageView!.center = CGPoint(x:centerOfView, y:centerOfImageView)
|
|
|
|
//title position layout
|
|
self.titleLabel!.bounds = CGRect(x:0, y:0, width:self.bounds.size.width,height:labelLineHeight)
|
|
self.titleLabel!.center = CGPoint(x:centerOfView, y:centerOfTitleLabel)
|
|
|
|
}
|
|
|
|
|
|
}
|