gpt4 book ai didi

ios - 如何动态为按钮分配方法

转载 作者:行者123 更新时间:2023-11-29 02:28:24 25 4
gpt4 key购买 nike

在我的 IOS 应用程序中,我有一个按钮,用户可以为其分配自定义操作,但我不知道动态设置按钮操作的最佳方法是什么。我的第一个想法是更改按钮的[发件人标签],然后按下按钮后,它将读取一系列“if”语句,上面写着“if (sender tag=1){then do this} if(sender tag= 2){然后执行此操作},依此类推。”但这样做的问题是,我将有数千个可能的操作,因此,如果有人选择发件人标签为 2000 的操作,则该方法必须在读取“if (sender tag=2000)”之前仔细阅读每个问题”,这是浪费时间。如何为按钮动态设置操作?

最佳答案

您有很多选择。按钮支持目标/ Action ,因此您可以使用 更改按钮的 Action
removeTarget:action:forControlEvents:
addTarget:action:forControlEvents:

或者您可以按您所说的那样使用标签。标记是数字,因此您可以使用 switch 语句而不是 if/then/else 链。不过,更好的方法是使用 block 的 NSArray 并为用户选择的操作调用适当的 block 。

示例:

在你的标题中:

typedef void (^myButtonBlock)(id sender);

在您的实现中:

myButtonBlock aBlock = ^(UIButton *sender) 
{
NSLog(@"Button block triggered for button with tag %d", sender.tag);
}

NSMutableArray *blocksArray = [NSMutableArray new];
[blocksArray addObject: aMethod];

关于ios - 如何动态为按钮分配方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27208349/

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