stringByTrimmingCharactersInSetというエラーが直りません
Swiftを学習していて、ファイルをダウンロードし、起動する際にエラーが多発してしまい、原因はswift2で書かれているためでしてので、Swift4に書き換えているのですが、stringByTrimmingCharactersInSet(下記のコードの(1)の部分)という書き換えがどうしてもできずお力を借りれたらと思います。
一応、
if let text = optionalTitle,
case let text.trimmingCharacters(in characterSet.whitespace).isEmpty == false
のように書き換えてみたのですがエラーが多発し、直らなかったのでご存知の方いましたらお教えください。
import UIKit
typealias ActionButtonItemAction = (ActionButtonItem) -> Void
public class ActionButtonItem: NSObject {
var action: ActionButtonItemAction?
var view: UIView!
var text: String {
get {
return self.label.text!
}
set {
self.label.text = newValue
}
}
private var label: UILabel!
private var button: UIButton!
private var image: UIImage!
private var labelBackground: UIView!
private let viewSize = CGSize(width: 200, height: 35)
private let buttonSize = CGSize(width: 35, height: 35)
private let backgroundInset = CGSize(width: 10, height: 10)
public init(title optionalTitle: String?, image: UIImage?) {
super.init()
self.view = UIView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: self.viewSize))
self.view.alpha = 0
self.view.isUserInteractionEnabled = true
self.view.backgroundColor = UIColor.clear
self.button = UIButton(type: .custom) as UIButton
self.button.frame = CGRect(origin: CGPoint(x: self.viewSize.width - self.buttonSize.width, y: 0), size: buttonSize)
self.button.layer.shadowOpacity = 1
self.button.layer.shadowRadius = 2
self.button.layer.shadowOffset = CGSize(width: 1, height: 1)
self.button.layer.shadowColor = UIColor.gray.cgColor
self.button.addTarget(self, action: Selector(("buttonPressed:")), for: .touchUpInside)
if let unwrappedImage = image {
self.button.setImage(unwrappedImage, for: .normal)
}
(1)if let text = optionalTitle where text.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()).isEmpty == false {
self.label = UILabel()
self.label.font = UIFont(name: "HelveticaNeue-Medium", size: 13)
self.label.textColor = UIColor.darkGrayColor()
self.label.textAlignment = .Right
self.label.text = text
self.label.addGestureRecognizer(UITapGestureRecognizer(target: self, action: Selector("labelTapped:")))
self.label.sizeToFit()
self.labelBackground = UIView()
self.labelBackground.frame = self.label.frame
self.labelBackground.backgroundColor = UIColor.whiteColor()
self.labelBackground.layer.cornerRadius = 3
self.labelBackground.layer.shadowOpacity = 0.8
self.labelBackground.layer.shadowOffset = CGSize(width: 0, height: 1)
self.labelBackground.layer.shadowRadius = 0.2
self.labelBackground.layer.shadowColor = UIColor.lightGrayColor().CGColor
// Adjust the label's background inset
self.labelBackground.frame.size.width = self.label.frame.size.width + backgroundInset.width
self.labelBackground.frame.size.height = self.label.frame.size.height + backgroundInset.height
self.label.frame.origin.x = self.label.frame.origin.x + backgroundInset.width / 2
self.label.frame.origin.y = self.label.frame.origin.y + backgroundInset.height / 2
// Adjust label's background position
self.labelBackground.frame.origin.x = CGFloat(130 - self.label.frame.size.width)
self.labelBackground.center.y = self.view.center.y
self.labelBackground.addSubview(self.label)
// Add Tap Gestures Recognizer
let tap = UITapGestureRecognizer(target: self, action: Selector("labelTapped:"))
self.view.addGestureRecognizer(tap)
self.view.addSubview(self.labelBackground)
}
self.view.addSubview(self.button)
}
// MARK: - Button Action Methods
func buttonPressed(sender: UIButton) {
if let unwrappedAction = self.action {
unwrappedAction(self)
}
}
// MARK: - Gesture Recognizer Methods
func labelTapped(gesture: UIGestureRecognizer) {
if let unwrappedAction = self.action {
unwrappedAction(self)
}
}
}