// // ActiveDetailCell.swift // xingchuangke // // Created by 李晓飞 on 2020/9/2. // Copyright © 2020 Virgil. All rights reserved. // import UIKit typealias TextFieldBlock = (String) -> Void class ActiveDetailCell: UITableViewCell { @IBOutlet weak var bgView: UIView! @IBOutlet weak var leadingLabel: UILabel! @IBOutlet weak var centerLabel: UILabel! @IBOutlet weak var trailingTextField: UITextField! @IBOutlet weak var lineView: UIView! var textFieldBlock: TextFieldBlock? var type: String = "" // 是否需要分割线 var isNeedSep: Bool = false { didSet { if isNeedSep { lineView.isHidden = false addDashdeBorderLayer(by: lineView) } else { lineView.isHidden = true } } } override func layoutSubviews() { trailingTextField.addTarget(self, action: #selector(textFieldDidChanged(textField:)), for: .editingChanged) trailingTextField.keyboardType = .decimalPad let rect: CGRect = CGRect.init(x: 0, y: 0, width: frame.width - 30, height: frame.height) if type == "1" { let maskPath = UIBezierPath(roundedRect: rect, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 10.0, height: 10.0)) let maskLayer = CAShapeLayer() maskLayer.frame = rect maskLayer.path = maskPath.cgPath bgView.layer.mask = maskLayer } else if type == "2" { let maskPath = UIBezierPath(roundedRect: rect, byRoundingCorners: [.bottomLeft, .bottomRight], cornerRadii: CGSize(width: 10.0, height: 10.0)) let maskLayer = CAShapeLayer() maskLayer.frame = rect maskLayer.path = maskPath.cgPath bgView.layer.mask = maskLayer } else if type == "3" { let maskPath = UIBezierPath(roundedRect: rect, byRoundingCorners: [.topLeft, .topRight, .bottomLeft, .bottomRight], cornerRadii: CGSize(width: 10.0, height: 10.0)) let maskLayer = CAShapeLayer() maskLayer.frame = rect maskLayer.path = maskPath.cgPath bgView.layer.mask = maskLayer } } @objc func textFieldDidChanged(textField: UITextField) { if (textField.text?.hasPrefix("."))! { textField.text = "0\(textField.text ?? ".")" } if (textField.text?.hasSuffix("."))! { var num: Int = 0 for c in textField.text! { if c == "." { num = num + 1 } } if num > 1 { textField.text = textField.text?.substringTo(index: (textField.text?.length())! - 1) } } let str: String = textField.placeholder?.substringFrom(start: 3, end: (textField.placeholder?.length())! - 3) ?? "0" let target: String = textField.placeholder?.substringFrom(index: (textField.placeholder?.length())! - 2) ?? "分润" let txt: String = ((textField.text?.length() == 0) ? "0" : textField.text)! let f = Float(txt) let curAm = CGFloat.init(f!) let defaultAm = CGFloat.init(Float(str)!) if target == "金额" { if curAm > defaultAm { SVProgressHUD.showError(withStatus: "填写金额应小于或等于\(defaultAm)") textField.text = "" if textFieldBlock != nil { textFieldBlock!("") } return } } else { // if curAm < defaultAm { // SVProgressHUD.showError(withStatus: "填写\(target)应大于或等于\(defaultAm)"); // textField.text = "" // if textFieldBlock != nil { // textFieldBlock!("") // } // return // } } if textFieldBlock != nil { textFieldBlock!(textField.text ?? "") } } func addDashdeBorderLayer(by view: UIView) { let rect: CGRect = CGRect.init(x: 0, y: 0, width: frame.width - 30, height: frame.height) let imgV: UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: rect.width, height: 1)) view.addSubview(imgV) UIGraphicsBeginImageContext(imgV.frame.size) let context = UIGraphicsGetCurrentContext() context?.setLineCap(CGLineCap.square) let lengths: [CGFloat] = [2, 4 ] context?.setStrokeColor(UIColor.red.cgColor) context?.setLineWidth(2) context?.setLineDash(phase: 0, lengths: lengths) context?.move(to: CGPoint(x: 0, y: 0)) context?.addLine(to: CGPoint(x: rect.width, y: 0)) context?.strokePath() imgV.image = UIGraphicsGetImageFromCurrentImageContext() //结束 UIGraphicsEndImageContext() } override func awakeFromNib() { super.awakeFromNib() // Initialization code } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) // Configure the view for the selected state } }