gpt4 book ai didi

ios - Swift:从另一个类调用 UIButton press

转载 作者:搜寻专家 更新时间:2023-11-01 07:17:40 26 4
gpt4 key购买 nike

我有我的 ViewController.class 和一个 Menu.class

Menu.class 中,我创建并设置了所有按钮,在 ViewController.class 中,我将菜单添加到 View 中。当我运行代码时,所有内容都显示在屏幕上,但我无法按下按钮。

这是我的 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")

}
}

我错了。我是否需要进行更多初始化才能检测到按下?

最佳答案

这是你应该做的。对 buttonTwo 和标签重复该操作。在 viewDidLoad() 中设置 View 并在 viewDidLayoutSubviews 中设置框架。

如果你将任何 UIView 子类化,你应该在 layoutSubviews() 中设置框架

如果你想在点击 newGame 时显示一个 tableView,那么创建一个新的 UIViewController。在其中添加一个 UITableView,就像在 ViewController 中添加 Button 和 Label 一样

import UIKit

class ViewController: UIViewController {

let buttonOne = UIButton()
let buttonTwo = UIButton()
let label = UILabel()

override func viewDidLoad() {
super.viewDidLoad()

buttonOne.backgroundColor = UIColor.gray
buttonOne.setTitle("New Game", for: .normal)
buttonOne.titleLabel?.font = UIFont(name: "Helvetica", size: 42)
buttonOne.setTitleColor(UIColor.black, for: .normal)
buttonOne.addTarget(self, action: #selector(newGame), for: .touchUpInside)

view.addSubview(buttonOne)
view.addSubview(buttonTwo)
view.addSubview(label)
}

override func viewDidLayoutSubviews() {
buttonOne.frame = CGRect(x: 0, y: 300, width: 600, height: 120)
buttonOne.center.x = self.view.center.x
}

func newGame(sender: UIButton?) {
print("New Game")
}
}

关于ios - Swift:从另一个类调用 UIButton press,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41123356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com