iphone - 构建数据驱动的 UI

标签 iphone ios cocoa-touch ipad user-interface

我在整个 SO 中搜索了 iPhone 的这个主题,所有内容都指向 WWDC 2010 的报道,所以是的,我知道这一点。但是谁能给我指点更详细的资源,从中我可以学习如何构建一个健壮的系统来根据我呈现的数据在应用程序上呈现不同的用户界面?我正在获取 JSON 格式的数据,我的 UI 需要根据我从 JSON 解析器中得到的内容而有所不同。

有没有详细介绍这个主题的书籍或在线资源?

谢谢!

最佳答案

我最近在我的一个应用程序(导航样式)中遇到了同样的问题,我解决它的方法相当简单。

我的 JSON 响应中有一个 user_type 标志,根据该标志,我将推送不同的 View Controller 。

例如,假设我的 JSON 响应存储在名为“response”的 NSMutableDictionary 中

if ([response objectForKey:@"account_type"] == 1) {
  /*
    initialize user_type 1 viewController
  */
    [self.navigationController pushViewController:userType1ViewController animated:YES];
else if ([response objectForKey:@"account_type"] == 2) {
  /*
    initialize user_type 2 viewController
  */
    [self.navigationController pushViewController:userType2ViewController animated:YES];
}

您可以根据需要拥有任意数量的不同用户类型。

在评论中澄清后进行编辑

您可能会手动绘制这些 View 。

我会为您列出的每个不同问题类型(包括问题标题、选择等常见元素的属性)子类化 UIView。假设具有相同问题类型的问题将具有相同的布局。

然后您可以循环遍历您的 JSON 响应(一旦它在数组或字典中)并进行布局。

如果是多项选择题,创建一个新的 multipleChoiceQuestion View ,添加它的属性,然后将 addSubview 添加到主提要 View 。然后,对于下一个 View ,您需要将框架设置为:

nextQuestion.frame = CGRectMake(0, 0 + firstQuestion.frame.size.height, height, width);

这将确保您的第二个问题绘制在第一个问题的正下方。

关于iphone - 构建数据驱动的 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7177920/

相关文章:

ios - 可下载内容如何在 iOS 的 react native 应用程序中工作?

ios - 查找 Image(systemName :) in SwiftUI) 的所有可用图像

ios - 如何连接自定义 UIView?

iphone - 在标签上设置文本时出现 iOS 6 问题

javascript - 检测 Javascript 中是否启用了运动和方向访问 - iOS

ios - 区分 iPhone 5、6 和 6 Plus 的尺寸类别?

iphone - AFNetworking 和无 Internet 连接场景

iphone - 在一段时间内显示标签

iphone - iPhone/iPad 应用程序启动时发出警报

iphone - Iphone Cocos2d 中的滑动手势