在 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 视图控制器中创建链接/按钮动态列表的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

在 react-router 中创建动态链接列表

如何在颤动中创建加载更多列表视图

如何在iphone的子视图页面中创建带有导航返回按钮的导航栏

我需要帮助使用 Swift 在视图控制器中创建两个单选按钮

如何在 iOS 中创建具有动态内容的视图?

如何在情节提要中创建 UIViewController 布局,然后在代码中使用它?