UITableView 多个自定义行?

2023-12-06

我一直在搜索很多,但没有找到与多个自定义行相关的任何有用信息,我需要为我的应用程序创建一个设置 tableView,其中我需要从 xib 文件加载行,例如:

第 1 行 =>> XIB 1。
第 2 行 =>> XIB 2。
第 3 行 =>> XIB 3。
第 4 行 =>> XIB 4。

我现在的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell=nil;
    //We use CellType1 xib for certain rows
    if(indexPath.row==0){
        static NSString *CellIdentifier = @"ACell";
        cell =(ACell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if(cell==nil){
            NSArray *nib= [[NSBundle mainBundle] loadNibNamed:@"ACell" owner:self options:nil];
            cell = (ACell *)[nib objectAtIndex:0];
        }
        //Custom cell with whatever
        //[cell.customLabelA setText:@"myText"]
    }
    //We use CellType2 xib for other rows
    else{
        static NSString *CellIdentifier = @"BCell";
        cell =(BCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if(cell==nil){
            NSArray *nib= [[NSBundle mainBundle] loadNibNamed:@"BCell" owner:self options:nil];
            cell = (BCell *)[nib objectAtIndex:0];
        }
        //Custom cell with whatever
        //[cell.customLabelB setText:@"myText"]
    }

    return cell;
}

首先,您创建一些自定义 UITableViewCell 类(.h 和 .m),数量与您拥有的 xib 文件一样多:
例如,您可以使用 CellType1 和 CellType2。
CellType1.h 看起来像

#import <UIKit/UIKit.h>
@interface CellType1 : UITableViewCell

@property(nonatomic,strong) IBOutlet UILabel *customLabel;

@end

然后创建 xib 文件,可以使用默认视图类型,但是只需删除自动创建的视图,将其替换为 UITableViewCell,并将类更改为 CellType1。对 CellType2 执行相同操作。

然后在你的 tableViewController 中,像这样编写 cellForRow :

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell=nil;
//We use CellType1 xib for certain rows
if(indexPath.row==<whatever you want>){
     static NSString *CellIdentifier = @"CellType1";
     cell =(CellType1*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if(cell==nil){
        NSArray *nib= [[NSBundle mainBundle] loadNibNamed:@"CellType1" owner:self options:nil];
        cell = (CellType1 *)[nib objectAtIndex:0];
      }
      //Custom cell with whatever
      [cell.customLabel setText:@"myText"]
}
//We use CellType2 xib for other rows
else{
    static NSString *CellIdentifier = @"CellType2";
    cell =(CellType2*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if(cell==nil){
        NSArray *nib= [[NSBundle mainBundle] loadNibNamed:@"CellType2" owner:self options:nil];
        cell = (CellType2 *)[nib objectAtIndex:0];
      }
      //Custom cell with whatever
      [cell.customLabel setText:@"myText"]
}

return cell;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UITableView 多个自定义行? 的相关文章

  • iOS 发送 iMessage 尽可能简单

    我希望能够以编程方式发送 iMessage 除了调用一个将文本发送到带有消息的号码的函数之外 无需执行任何其他操作 这两个消息都是文本框 我真的很感激一些示例代码 因为我在网上搜索过 但我发现没有任何帮助 这不适用于商业应用程序 仅适用于我
  • Xcode MyProjectName-Bridging-Header.h 不存在

    我想开始在我的 Objective C 项目中使用 Swift 所以我添加了一个快速类 import Foundation objc class System NSObject objc func printSome println Pri
  • 在 viewWillAppear( ) 中获取空值,但在 viewDidLoad( ) 中获取有效值

    When print mess 被称为来自viewDidLoad函数 它打印预期的内容 但是当从viewWillAppear函数 它给出空输出 完成分配后标签也没有更新viewDidLoad 为什么是这样 主视图控制器 if segue i
  • Expo 应用程序“您的应用程序正在使用广告标识符 (IDFA)”

    我正在尝试将应用程序上传到应用程序商店 每次我上传二进制文件时 苹果都会坚持认为我的应用程序正在使用广告 而我从未实现过这样的事情 我查看了文档并删除了涉及的所有代码ASIdentifier and adIdentifier我不太确定我错过
  • UIWebView 未正确加载 JavaScript - 嵌入式 Facebook 帖子

    Facebook 有一项新功能 允许用户将公共帖子嵌入网页中 我想尝试在 UIWebView 内的 iPhone 应用程序中使用它 转义必要的代码非常简单 但即使我手动转义代码 Web 视图也不会正确加载帖子 JavaScript 根本不起
  • 是否有一个类可以获取应用程序中的默认图片查看器?

    我不想访问 iPhone 上的图像 我想显示我的应用程序中的图像 但就像您查看 iPhone 相册中的图片一样 使用所有捏合和缩放控件等 这可能吗 我认为可能 偶然 有像 AVMediaPlayer 类这样的类可以做到这一点 谢谢 汤姆 如
  • 有没有办法在 xcode 上使用 c++0x ?我想使用 gcc 4.4 或更高版本

    我想使用 gcc 4 4 或更高版本进行 iphone 开发 有人知道怎么做吗 不 你不知道 相信我 你不会 Apple 仍保留 gcc 4 2 1 因为 4 2 2 及更高版本使用 GPLv3 这意味着他们必须放弃对其平台的控制 对于 i
  • RxSwift、RxCocoa 和 UITableview

    我在使用 RxSwift 实现 UITableView 时遇到问题 我尝试使用以下代码将模型数组的可观察对象绑定到表项 models bind to self tableView rx items cellIdentifier Cell c
  • 我正在寻找 GCDAsyncUdpSocket 上的一些示例,但发现没有一个有效

    接收数据从未被调用过 我编写了这个由我的主线调用的 swift 类UI视图控制器向接收消息的服务器发送消息 但当服务器发回响应时 客户端永远不会收到它 因为 didReceiveData 从未被触发 我一直在谷歌上搜索并查看文档 它说客户端
  • 如何确定 UINavigationController 中工具栏的高度?

    我有一个带有由 UINavigationController 呈现的工具栏的视图 当我处理 UIKeyboardWillShowNotification 时 我将整个屏幕向上滚动键盘的高度 问题是当显示键盘时 底部工具栏不显示 所以我只需将
  • swift 3.0 中的 Sha 256 加密语法错误

    func SHA256 gt String let data self data using String Encoding utf8 let res NSMutableData length Int CC SHA256 DIGEST LE
  • 使用排序函数按 NSDates 对数组进行排序[重复]

    这个问题在这里已经有答案了 我有一个名为的模型类Event import Foundation import MapKit public class Event let id Int var title String let status
  • 将子视图发送到后面

    我正在尝试模仿 facebook ios 侧面菜单并让它工作 但是我遇到的问题是我无法将侧面菜单发送到后面 正如另一个问题中所讨论的那样使用 Objective C 的 iphone facebook 侧边菜单 https stackove
  • iOS 4.0 中的应用程序将终止

    iOS 4 0 中未调用 applicationWillTerminate 委托方法 当我点击 主页 按钮时 我看到 applicationWillResignActive 和 applicationDidEnterBackground 委
  • 后台模式下的 AVSpeechSynthesizer

    我无法获取 iOS 7AVSpeechSynthesizer当我的 iOS 应用程序处于后台模式时工作 我添加了 应用程序播放音频 应用程序支持的后台模式的关键 但我仍然无法让它工作 我还研究了创建一个AVMutableCompositio
  • iOS SDK:MapKit MKPolyLine 未显示

    我试图在地图上显示多段线 但该线没有显示 我尝试了很多事情 但注意到似乎有用 我检查了核心数据函数 它正在返回数据 所以这不是问题 它必须是我在地图点创建或地图上绘制的某个地方 我猜 我确信一定是某个地方出了点小错误 但我找不到它 My c
  • UIWebView 内的滑动手势识别

    我已经阅读了很多关于此的问题 但似乎没有一个能够实现我想要的 所以可以说我有一个任意的UIWebView里面的一个UIViewController The UIViewController has a SwipeGestureRecogni
  • 为什么我们需要将 delegate 设置为 self?为什么编译器不默认它?

    I think我完全理解授权的概念 我的问题是 当我们这样做时 class someViewController UIViewController UITableViewDelegate 会吗ever可能我们不想设置tableView de
  • UITableViewController 无法识别的选择器发送到实例

    当我传递一个整数时 我有一个 tableviewcontroller 和一个detailtableviewcontroller UITableViewController setSurveyNumber 无法识别的选择器发送到实例 Biza
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效

随机推荐

  • Oracle 中的 TO_NUMBER 函数出现奇怪的问题

    如果记录数超过特定数量 n 则在 varchar2 列的 where 子句中执行 to number 函数时 我遇到间歇性问题 我使用 n 是因为没有发生这种情况的确切记录数 在一个 DB 上 它发生在 n 为 100 万之后 而在另一个
  • 连接耳机时如何将默认音频路由到耳机?

    我正在开发一个应用程序 其中我们只需要使用耳机插孔作为按钮 要求 连接耳机时通过耳机播放默认音频 通话 不需要通过耳机播放音频 有很多通过扬声器和耳机以及蓝牙耳机路由音频的示例 但没有关于在连接耳机时通过设备的耳机路由音频的示例 我已经尝试
  • 没有 www 则不会出现网络字体

    我试图到处寻找答案 我有一个唱歌网站www hugeone co uk 当地址类似于此链接 带有 www 时 一切正常 但是 如果我只输入hugeone co uk 网络字体就不会出现 并且我收到消息 跨源请求被阻止 同源策略不允许读取 远
  • Spring MVC 页面 HTTP 状态 400 和不正确的 URL

    我在使用该应用程序时遇到了一些问题 我有一个注册表单 该注册表单从控制器发布到另一个页面 该页面显示注册表中的查询结果 在结果页面上 我选择一条记录 它返回给我的是 数据到注册页面 用户应该能够在记录返回后更新记录或再次执行查询 我遇到的问
  • 使用java在mongodb上分页的最佳方法是什么

    我正在尝试通过下面的代码在 mongodb 中创建一个简单的分页 collection find skip n limit n 但是 如果我们看到在Java术语中 第一个find将返回所有记录 考虑到我有200万条记录 然后它将它传递给sk
  • 为 scatter3 图创建图例(Matlab)

    我有一个矩阵点X在 3 个维度中 X is a Nx3矩阵 并且这些点属于簇 它所属的簇由下式给出Nx1 vector Cluster 它的值如 1 2 3 所以 我正在绘制它scatter3像这样 scatter3 X 1 X 2 X 3
  • 将字符串拆分为行和列

    我有一根又长又大的绳子 mystr lt foo one undefined foo two undefined BAR three undefined 我想把它变成 x1 x2 x3 1 foo one undefined 2 foo t
  • 大型 TChart 需要很长时间才能绘制

    置顶帖子 我已经接受了答案 但它对我不起作用 我会发帖一个新问题 强调 Delphi 7 感谢所有提供良好意见的人 我在一小时内以一秒的间隔进行测量 我之前有一个问题 更新 TStringGrid 需要 45 秒 并设法将其降低到 比眼睛能
  • 在文件夹中使用“git clean”删除了其内容

    我试图在文件夹中使用 Git 然后我使用git glean df我发现一切都消失了 这是否意味着我丢失了文件 有什么方法可以找回它们吗 当你跑的时候git clean df you asked Git to 从工作树中删除未跟踪的文件 包括
  • 如何在 Swift 中解析具有类型相关子对象的 JSON 对象?

    我有以下 JSON 对象 type foo props word hello type bar props number 42 取决于存储的类型type 对象在props有不同的键 所以 我尝试了一些逻辑 struct MyObject C
  • Python Pygame 新手代码显示空白屏幕

    我执行以下代码 只得到一个空白 黑色 窗口 窗口标题显示 但我还没有加载图像 我也尝试使用除所使用的图像之外的其他图像 py 文件和图像位于同一目录中 background image filename checkmark jpg mous
  • 确定经过的时间

    我在 PHP 中有两次 我想确定经过的小时和分钟 例如 8 30 到 10 00 为 1 30 一个解决方案可能是使用strtotime将日期 时间转换为时间戳 first str 8 30 first ts strtotime first
  • 在单独的 1-1 表中拥有 varbinary 字段有什么好处?

    我需要将二进制文件存储在 SQL Server 2005 上的 varbinary max 列中 如下所示 FileInfo FileInfoId int PK 身份 FileText varchar max 可以为空 文件创建日期日期时间
  • 将 system2 标准输出重定向到 Windows 上的文件

    根据manual the stdout的论点system2函数可以将输出重定向到文件 这似乎可以在 unix 上运行 但是我无法让它在 windows 上运行 下面的玩具示例 没有out txt or err txt文件已创建 我尝试将其发
  • .then() 方法在 JavaScript 中实际上是如何工作的?

    我对 Promise 有疑问 这让我很困惑 The then method 在我开始讨论让我困惑的事情之前 then 我会根据我的知识对 Javascript 引擎的工作原理做一个简短的解释 据我所知 Javascript 不是异步语言 而
  • 使用连接更新表

    update salaries set diff a diff from attendence a join salaries s on s employees id a employees id and s date a date whe
  • 将儒略日期转换为 YYYY-MM-DD

    我进行了广泛的搜索 但我似乎找不到将朱利安转换为yyyy mm dd 这是我的朱利安的格式 儒略格式由年份 前两位数字 和一年中的日期 后三位数字 组成 例如 95076 is March 17 1995 The 95表示年份和076表示这
  • Powershell...'enabled eq $true' 与 where {$_.Enabled -eq $true}

    我对powershell知之甚少 我想知道是否有人可以指出我需要学习什么来解释以下内容 PS C Users username gt Get Aduser Filter Enabled eq true count 1234 PS C Use
  • 为什么 Google Cloud Key Management Service 的 Java 客户端库不支持 Android?

    据记录 它不支持 Android 为什么 难道只是因为安卓的BouncyCastle的实现在功能上有所缩减 并且不支持类似的东西KeyPairGenerator ECDSA 椭圆曲线数字签名算法 这是另一个链接 仅仅使用还不够吗Spongy
  • UITableView 多个自定义行?

    我一直在搜索很多 但没有找到与多个自定义行相关的任何有用信息 我需要为我的应用程序创建一个设置 tableView 其中我需要从 xib 文件加载行 例如 第 1 行 gt gt XIB 1 第 2 行 gt gt XIB 2 第 3 行