gpt4 book ai didi

ios - UIButton 未触发其目标选择器

转载 作者:行者123 更新时间:2023-11-30 11:40:59 25 4
gpt4 key购买 nike

我有一个 UIButton,我将其放置在与声明它的 UIView 不同的 UIView 上,但我希望目标选择器位于我声明该按钮的 UIView 中。 init_button 函数正在被调用,因为该按钮正在被调用放置在 View 上。这是我所拥有的:

import Foundation
import UIKit

class Menu1 : Element {

var color_base = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)

var mock : UIView = UIView()
var button : UIButton = UIButton()
var view_width: CGFloat = 0,
view_height: CGFloat = 0,
menu_vertical_buffer : CGFloat = 0,
menu_width : CGFloat = 0,
button_vertical_buffer : CGFloat = 0,
button_width : CGFloat = 0


required init(mock: UIView) {
super.init(mock: mock)
self.mock = mock
init_dims()
init_button()
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

func init_dims(){
view_width = mock.frame.width
view_height = mock.frame.height
menu_vertical_buffer = CGFloat(floor(Double(view_height/17.5)))
menu_width = CGFloat(floor(Double(view_width/2.67)))
button_vertical_buffer = CGFloat(floor(Double(menu_vertical_buffer/3.6)))
button_width = menu_width - CGFloat(floor(Double(menu_width/7)))
}

func init_button(){
button = UIButton(frame: CGRect(x: mock.frame.width - menu_width,
y: mock.frame.height - (menu_vertical_buffer + (2 * button_vertical_buffer)),
width: button_width,
height: menu_vertical_buffer))
button.backgroundColor = color_base
button.layer.cornerRadius = button.frame.height/2
button.addTarget(self, action: #selector(changeMenuState), for: .touchUpInside)
mock.addSubview(button)
}

dynamic func changeMenuState(){
print("Menu state changed")
}




}

changeMenuState 是我添加为目标选择器的函数,但按钮位于 View mock 中,而不是在这些函数所在的 View 中。

最佳答案

changeMenuState 必须是动态的或像 @objc 一样公开

@objc func changeMenuState(){
print("Menu state changed")
}

关于ios - UIButton 未触发其目标选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49290153/

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