У меня есть мой ViewController.class
и Menu.class
Swift: Вызов UIButton пресса из другого класса
В Menu.class
я создаю и настройки всех кнопок и в ViewController.class
я добавить меню для просмотра. Когда я запускаю код, все отображается на экране, но я не могу нажать кнопку.
Это как мой ViewController выглядит следующим образом:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let menu = Menu()
menu.setupView(controller: self, width: 600, height: 120)
self.view.addSubview(menu)
// Do any additional setup after loading the view, typically from a nib.
}
}
И это мое меню:
import Foundation
import UIKit
class Menu: UIView{
func setupView(controller: ViewController, width: CGFloat, height: CGFloat){
let newGame = UIButton(frame: CGRect(x: controller.view.center.x, y: 300, width: width, height: height))
newGame.center = CGPoint(x: controller.view.center.x, y: 300)
newGame.setTitle("New Game", for: .normal)
newGame.backgroundColor = UIColor.gray
newGame.titleLabel?.font = UIFont(name: "Helvetica", size: 42)
newGame.setTitleColor(UIColor.black, for: .normal)
newGame.addTarget(self, action: #selector(Menu.newGame), for: .touchUpInside)
self.addSubview(newGame)
}
func newGame(){
print("New Game")
}
}
Что моя ошибка. Нужно ли делать больше инициализации, чтобы она могла обнаружить прессу?
Ну, я c/c ваш код, и он даже не компилируется для меня. Первое, что мне интересно, почему Меню не замаскировано прямо из UIButton? Планируете ли вы иметь несколько кнопок? Если да, то сколько? Если вы хотите иметь правильный код, вы должны снова подумать о своей концепции. Если вы только хотите знать, почему это плохо, это потому, что ваш кадр установлен неправильным образом. –
Я планирую иметь 2 кнопки и 1 ярлык. Я удалил код для других 2 вещей, и в меню отсутствует}. Я прошу прощения. –
} это не единственная проблема. Во всяком случае, если бы я был вами, я бы удалил ваше Меню, и я бы создал свои 2 кнопки + ярлык непосредственно в ViewController. –