以编程方式向视图添加多个按钮,调用相同的方法,确定它是哪个按钮

2024-01-06

我想以编程方式将多个 UIButton 添加到视图中 - 按钮的数量在编译时未知。

我可以像这样制作一个或多个 UIButton(在循环中,但为了简单起见而缩短):

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
       action:@selector(buttonClicked:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Button x" forState:UIControlStateNormal];
button.frame = CGRectMake(100.0, 100.0, 120.0, 50.0);
[view addSubview:button];

从此链接复制/编辑:如何以编程方式创建基本的 UIButton? https://stackoverflow.com/questions/1378765/how-do-i-create-a-basic-uibutton-programmatically

但是如何在buttonClicked:中确定单击了哪个按钮?如果可能的话,我想传递标签数据来识别按钮。


您可以在重要的地方保留对实际按钮对象的引用(例如数组),或者将按钮的标记设置为有用的内容(例如其他数据数组中的偏移量)。例如(使用标签,因为这通常很有用):

for( int i = 0; i < 5; i++ ) {
  UIButton* aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  [aButton setTag:i];
  [aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
  [aView addSubview:aButton];
}

// then ...

- (void)buttonClicked:(UIButton*)button
{
  NSLog(@"Button %ld clicked.", (long int)[button tag]);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式向视图添加多个按钮,调用相同的方法,确定它是哪个按钮 的相关文章

随机推荐

  • 如何在给定分支中查找文件

    我注意到 在进行代码查看时 我公司的人们通常只给出完成工作的分支 而没有其他任何信息 所以我想一定有一种简单的方法来找出给定分支中具有版本的所有文件 这与查找所有文件是一样的 这已经改变了 是的 我不知道在某个分支中查找文件的预期 简单方法
  • 简单&小,纯javascript灯箱(对话框覆盖)? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个用纯 JavaScript 构建的小型 功能有限的灯箱 这是针对可嵌入小部件的 因此不使用
  • 如何在 C/C++ 中将字符串从 UTF8 转换为 Latin1?

    我的问题很简单 但到目前为止我找不到解决方案 如何转换UTF8编码string到 latin1 编码string在 C 中不使用任何额外的库 如 libiconv 到目前为止我能找到的每个例子都是用于 latin1 到 UTF8 的转换 t
  • 在新的弹出窗口中打开标题位置?

    我想看看是否可以打开这样的标题位置 if GET id 99993 header Location page php 并让它在 jQuery 弹出窗口中打开 prettyPhoto 是一个在线 jQuery 弹出窗口 我正常的 a href
  • 如何从 Java 中的输入文本中删除标点符号?

    我正在尝试使用 Java 中用户的输入获取一个句子 我需要将其变为小写并删除所有标点符号 这是我的代码 String words instring split s for int i 0 i lt words length i words
  • Powershell - 检索内部异常以输出(socketException)

    我最近开始深入研究 Powershell 中的错误处理 我注意到一些我不太理解的东西 我不知道这种行为来自哪里 我有一个简单的函数 它使用以下命令检查域名 System Net DNS GetHostByName 如果这个变量传递给一个不存
  • 删除集合列表的重复项

    我有一个集合列表 L set 1 4 set 1 4 set 1 2 set 1 2 set 2 4 set 2 4 set 5 6 set 5 6 set 3 6 set 3 6 set 3 5 set 3 5 实际上在我的例子中是倒数元
  • 添加新消息时滚动到底部

    我正在制作一个聊天机器人 当用户给出新输入或通过 API 发送数据时 我想滚动到聊天框的底部 它不滚动 滚动只是停留在同一位置 但数据正在添加到聊天框中 我已经尝试过其他聊天机器人的代码 但它也不起作用 var outputArea cha
  • Javascript - 无限滚动 JSON 数组?

    我有这样的 JavaScript items forEach function item index arr console log item price var message BitSkins Price item bprice if
  • 通过相机扫描图像和从相机捕获图像有什么不同吗?

    我需要知道扫描和用相机拍照之间的区别 举个例子 我们通常用安卓手机扫描二维码 条形码之类的东西 它们也是图像 我们可以用相机拍照 它也图像 那么 扫描二维码是指拍摄图像并对其进行处理 还是有什么特殊的东西从像素值获取图像 最大的区别是当你c
  • 如何在 Openscenegraph 中从 2D 鼠标单击屏幕坐标点计算 3D 点(世界坐标)?

    我试图在 2D 屏幕空间上用户选择的点的 3D 空间上放置一个球体 为此 我尝试使用以下技术从 2d 点计算 3d 点 但该技术没有给出正确的解决方案 mousePosition x clickPos clientX window left
  • Jython easy_install 错误

    我的目的是向 jython 添加一些 python 库 即 suds 包 为此 请尝试遵循以下指示http www jython org jythonbook en 1 0 appendixA html setuptools http ww
  • $wpdb 在 WordPress 插件文件中不起作用

    我正在使用 WordPress 插件 我创建一个自定义表单 用户在其中添加值 然后单击提交按钮 当用户单击提交按钮时 它会重定向到自定义流程文件 我在其中编写用于插入和更新数据的查询 I my 进程 php文件 首先我打电话全局 wpdb
  • 当浏览器关闭时运行服务器端功能

    背景 我正在使用 C 代码隐藏创建一个非常简单的类似聊天室的 ASP NET 页面 当前用户 聊天消息显示在位于 AJAX 更新面板内的控件中 并使用计时器 它们每隔几秒从数据库中提取信息 我试图找到一种简单的方法来处理将用户退出浏览器时的
  • 如何避免从闭包中访问可变变量

    我有一些这样的代码 for var id 0 id lt message receiver length id var tmp id id zlib gzip JSON stringify message json function err
  • CameraUpdateFactory.newLatLngBounds 始终不工作

    我在 Android 谷歌地图上移动相机时遇到一些问题 我有这个功能 protected void centralizeMapToBounds final LatLng southwest final LatLng northeast fi
  • PostgreSQL 错误:致命:角色“用户名”不存在

    我正在设置 PostgreSQL 9 1 我不能用 PostgreSQL 做任何事 不能createdb can t createuser 所有操作都会返回错误信息 Fatal role h9uest does not exist h9ue
  • QML 是否支持属性的访问说明符(例如 Private)?

    我只是想知道 QML 中是否有像 C 中那样的私有属性等概念访问说明符 如果没有 是否想知道我的 QML 组件中有大约 10 个属性 但我必须限制仅访问 2 个属性 我们怎样才能实现这个场景 QML 本身没有这样的内置功能 但这里是 Qt
  • 如何获取 3D 维数组并将其转换为模型?

    我正在使用 Open CV 并且可以使用代码从图像中提取多维数据 但是显示它的简单方法是什么 我有一个 3D 数组 line start x y z line end x y z 线条之间的任何内容都将被坚实的平面填充 是否有某种函数可以用
  • 以编程方式向视图添加多个按钮,调用相同的方法,确定它是哪个按钮

    我想以编程方式将多个 UIButton 添加到视图中 按钮的数量在编译时未知 我可以像这样制作一个或多个 UIButton 在循环中 但为了简单起见而缩短 UIButton button UIButton buttonWithType UI