gpt4 book ai didi

iphone - 设计具有多个 xib 的 View Controller

转载 作者:行者123 更新时间:2023-11-28 23:08:21 27 4
gpt4 key购买 nike

在响应式设计的 View Controller 中使用多个 xib 是最佳实践吗?

我目前正在实现一个应用程序,该应用程序的数据严重依赖远程 API。一个特定的 View 令人不安,因为布局取决于从该 API 返回的数据。它要么是具有完整评论和定价的产品,要么是我们仅有有限信息的产品。

设计响应数据。根据返回的信息量, View 的布局与其他 View 有很大不同。此外,有很多元素需要根据文本长度等重新定位。我最初几乎全部用代码实现了设计,但很快就变得无法维护,所以我将几乎所有元素卸载到 xib 并只使用代码重新定位元素。

使用多个 xib 可能是一个很好的解决方案。当 View 加载时, Controller 执行 API 请求,然后在需要时加载新的 xib。我不确定这种方法可能有什么缺点。

最佳答案

我现在正在实现客户端-服务器应用程序。大多数 View 的布局也取决于来自 API 的数据。在像你这样的情况下,我创建了几个 xib 文件(一个用于详细产品,一个用于有限等),并且根据服务器响应我选择加载 xib。代码示例:

    // load proper view from nib
NSArray *nibViews;
if(product.details) {
nibViews = [[NSBundle mainBundle] loadNibNamed:@"DetailedView" owner:self options:nil];
}
else {
nibViews = [[NSBundle mainBundle] loadNibNamed:@"NormalView" owner:self options:nil];
}

// create and initialize product view object
ProductView *productView = [nibViews objectAtIndex:0];

// configure a view here..

你可以把所有版本的 View 放到一个 xib 中。在那种情况下,您只需更改 nibViews objectAtIndex 中的索引:

关于iphone - 设计具有多个 xib 的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864445/

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