在 iOS5 视图控制器中创建链接/按钮动态列表的最佳方法
Posted
技术标签:
【中文标题】在 iOS5 视图控制器中创建链接/按钮动态列表的最佳方法【英文标题】:Best way to create dynamic list of links/buttons in iOS5 view controller 【发布时间】:2012-05-15 03:25:24 【问题描述】:我想在 ios5 视图控制器中创建一组动态链接/按钮,并试图找出最好的方法。
例如:
项目 1 第 2 项 第 3 项 : : 项目N
每个项目都是一个可点击的链接/按钮,并且会执行一些操作,例如根据链接加载另一个屏幕等。
我不提前知道可能有多少项目,所以如果所有项目都不适合屏幕,我需要能够滚动查看。
我的问题: 1. 这样做的更好方法是什么?我可以动态地创建标签和按钮,但这似乎相当麻烦,我不完全确定如何区分不同的按钮(基本上我需要一些索引来找出点击了哪个项目)。 2. 或者,我想知道我是否可以将此页面呈现为 html 并且只有链接?我从来没有这样做过,也不知道如何将按钮与链接相关联。
有什么建议吗?
AK
【问题讨论】:
【参考方案1】:您可以尝试使用tag
属性来存储您在创建按钮时需要的索引值。然后通过使用button.tag
访问在按钮点击处理程序中对其进行评估。
也许您可以尝试Cordova 以获取基于 HTML 的方法。不过我不太熟悉,所以不能肯定。
希望对你有帮助。
【讨论】:
我猜标签属性是我知道如何做到这一点的唯一方法。让我看看科尔多瓦,看看它是否合适。谢谢 我想我在提到 HTML 方法时还不够清楚。我真正的意思是我是否应该将那个特定的屏幕呈现为 HTML。我仍然想将 Xcode 和 iOS 框架用于其他一切。 我明白了。然后我建议将它们实现为按钮(或任何其他可点击元素),并在标签中添加索引,以了解您应该如何处理操作。【参考方案2】:(1) 您可以根据按钮索引分配 UIButton tag
属性。如果要触发任何事件,您可以通过检查tag
来识别该事件属于哪个按钮。
示例:
// Initializing some buttons
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button1.tag = 1;
[button1 addTarget:self
action:@selector(buttonPushed:)
forControlEvents:UIControlEventTouchUpInside];
UIButton *button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button2.tag = 2;
[button2 addTarget:self
action:@selector(buttonPushed:)
forControlEvents:UIControlEventTouchUpInside];
按钮事件选择器:
- (void)buttonPushed:(id)sender
...
if ([sender tag] == 1)
// do something after button1 event
else if ()
// do something after button2 event
...
(2) 如果您选择在 HTML 中进行,您可以查看CMHTMLView
【讨论】:
谢谢。至于 HTML,我的意思是如果只用 HTML 做一个屏幕而不是整个应用程序是否有意义。这只是我想将信息显示为一系列链接的一个屏幕。 如果您查看 CMHTMLView,它只是一个视图,您可以在 ViewController 中使用它。好处是 CMHTMLView 提供了一种简单的方法,让您可以通过块编程在任何点击事件上在 ViewController 和 HTMLView 之间进行通信。以上是关于在 iOS5 视图控制器中创建链接/按钮动态列表的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章