首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Swift3中使用枚举分配UITableView中的自定义单元格?

在Swift3中,可以使用枚举来分配UITableView中的自定义单元格。下面是一个完整且全面的答案:

在Swift3中,可以通过以下步骤来使用枚举分配UITableView中的自定义单元格:

  1. 首先,创建一个枚举来表示不同的单元格类型。例如:
代码语言:txt
复制
enum CellType {
    case normal
    case custom
}
  1. 在UITableViewDataSource的代理方法tableView(_:cellForRowAt:)中,根据枚举值来确定要使用的单元格类型。例如:
代码语言:txt
复制
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellType: CellType = indexPath.row % 2 == 0 ? .normal : .custom
    
    switch cellType {
    case .normal:
        let cell = tableView.dequeueReusableCell(withIdentifier: "NormalCell", for: indexPath) as! NormalTableViewCell
        // 配置普通单元格的内容
        return cell
    case .custom:
        let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomTableViewCell
        // 配置自定义单元格的内容
        return cell
    }
}
  1. 在UITableViewDelegate的代理方法tableView(_:heightForRowAt:)中,根据枚举值来确定不同单元格类型的高度。例如:
代码语言:txt
复制
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    let cellType: CellType = indexPath.row % 2 == 0 ? .normal : .custom
    
    switch cellType {
    case .normal:
        return 44 // 普通单元格的高度
    case .custom:
        return 100 // 自定义单元格的高度
    }
}

通过以上步骤,你可以在UITableView中使用枚举来分配不同类型的自定义单元格。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mmp
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Metaverse):https://cloud.tencent.com/product/tencent-metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • swift4.0语法杂记(精简版)

    { print(char) // swift3遍历 } print(str..characters.count) //swift3打印字符串长度 字符串截取 最方便方式就是将String...十七、枚举 1、定义 在swift枚举使用是由enum关键字来创建枚举枚举所有成员都放在一对大括号里面。它为一组相关值定义一个共同类型。使用case关键字来定义一个新枚举成员值。...那我们可以通过使用indirect修饰枚举变量。indirect修饰整个枚举时,所有成员均可递归(也可不递归?)。...Swiftprotocol不仅能定义方法还能定义属性,配合extension扩展使用还能提供一些方法默认实现,而且不仅类可以遵循协议,现在枚举和结构体也能遵循协议了。...,如果 Inline value buffer 值占用空间很大时,这个值会被分配在堆上,然而在堆上分配内存是一个性能比较慢操作。

    15.4K90

    iOS自定义UICollectionView和UITableView单元格选中样式

    iOS,UICollectionView和UITableView已经有系统默认选中颜色设置,但是只有无色,蓝色,灰色,三种颜色设置,如果想要其他颜色效果,我们可以自由自定义设置。...前言 先观赏一下典型UITableView控件案例 ? image.png 典型UICollectionView控件案例 ?...= UITableViewCellStyleDefault; cell.selectionStyle = UITableViewCellSelectionStyleDefault; } 2.单元格自定义选中效果方案...(一) 通用方案: 假设你已经正确实现其他代理方法,需要在table或collection返回cell代理方法作如下设置: cell.selectedBackgroundView = [[UIView...(二) 通用方案: [x] 在自己自定义cell文件重写如下方法: 示例: UITableViewCell.m - (void)setHighlighted:(BOOL)highlighted

    3K30

    Swift4语法新特性 原

    3.值类型属性读写访问权限冲突     在Siwft语言中,像结构体,枚举和元组中都有属性概念。...在Swift3,associatedtype从语法上是不能追加where子句,Swift4增强了associatedtype功能,其可以使用where子句进行更加精准约束,看下面的代码: //容器协议...四、增强区间运算符     Swift语言中区间运算符使用起来十分方便,例如在Swift3,我们若要遍历数组范围,可以使用如下代码: //Swift3代码 let array = ["1","2...<array.count]{ print(item) } Swift3...运算符只是作为闭区间运算符使用,在Swift4,可以用它来取集合类型边界,字符串,数组等,看如下代码: let...4.Any与AntObject类型支持。 5.强大枚举和结构体。 6.递归枚举支持。 7.支持重载与自定义运算符。

    1.7K30

    0765-7.0.3-如何在Kerberos环境下用Ranger对Hive使用自定义UDF脱敏

    文档编写目的 在前面的文章中介绍了用Ranger对Hive行进行过滤以及针对列进行脱敏,在生产环境中有时候会有脱敏条件无法满足时候,那么就需要使用自定义UDF来进行脱敏,本文档介绍如何在Ranger...配置使用自定义UDF进行Hive列脱敏。...测试环境 1.操作系统Redhat7.6 2.CDP DC7.0.3 3.集群已启用Kerberos 4.使用root用户操作 使用自定义UDF进行脱敏 2.1 授予表权限给用户 1.在Ranger创建策略...6.再次使用测试用户进行验证,使用UDF函数成功 ? 2.3 配置使用自定义UDF进行列脱敏 1.配置脱敏策略,使用自定义UDF方式对phone列进行脱敏 ? ?...由上图可见,自定义UDF脱敏成功 总结 1.对于任何可用UDF函数,都可以在配置脱敏策略时使用自定义方式配置进策略,然后指定用户/用户组进行脱敏。

    4.9K30

    自定义UITableViewCell实现左滑动多菜单功能LeftSwipe

    这里尝试用了下使用三个方式来实现了这个功能: 1、使用自定义UITableViewCell + UISwipeGestureRecognizer + 代理 实现; 2、使用自定义UITableViewCell...+ UIPanGestureRecognizer + 代理 实现; 3、使用自定义UITableViewCell + UISwipeGestureRecognizer + block 实现。...注意点: 使用UIPanGestureRecognizer手势实现左滑时候,由于拖拽手势方向随意性,导致与UITableViewController下拉刷新手势冲突了!...部分代码: 1、使用UISwipeGestureRecognizer  +  Delegate  自定义UITableViewCell部分代码: 1 // 2 // TanTableViewCell.h...30 - (void)closeSwipe; //关闭滑动,恢复原样(用于在滑动当前单元格时,把其他已经左滑单元格关闭) 31 32 @end @implementation TanTableViewCell

    2.5K30

    自学Swift之路(一)UI入手之基本控件

    ,里面创建一些基本UI控件,然后在viewDidLoad调用: override func viewDidLoad() { super.viewDidLoad()...,两种语言控件属性是一样,只是语法有些不一样而已,多写几个就会发现Swift都是一个套路.那好吧,简单控件就不写了,接下来我们来写下UITableView // 5.UITableView...} 当然,别的方法也是一样,点击单元格: func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath...) { print("点击了单元格") } 好了,这篇文章内容就到这里了,下一篇文章将会围绕UITableView自定义UITableViewCell来写点可视化内容较强东西...本人也是正在学习,文章内容如有错误,还请指正,有需要优化地方,也请帮忙指出,帮助大家共同进步

    2.9K110

    底牌项目中上传牌谱功能之编辑标准模式

    功能需求:用户按照标准模式进行牌谱编辑然后进行预览,最终生成牌谱显示在自己牌谱(是不是和自定义需求差不多)。...可相比于我在项目中做法也不一定,我用了UITableView,而且感觉将问题复杂化了。 下面说说我使用UITableView做法。...至于编辑页面的实现,首先是创建UITableView,tableView上Cell使用自定义Cell,Cell子视图主要是一个UITextView(用于编辑内容)、UILabel(标题)、UIButton...难点:获取UITextView文字  (相对于直接创建五个UITextView获取它们text较难) 解决难点: 在创建单元格时候为每一个单元格UITextView设置代理,且代理为当前视图...首先需要在创建单元格方法中将所有的单元格存储到一个数组,代码: [self.tableArr addObject:cell]; (由于单元格比较少,没有进行复用单元格所以可以使用这种方法获取所有的

    84730

    解决UITableViewCell重用机制导致内容出错方法总结

    UITableViewcell可以有很多,一般会通过重用cell来达到节省内存:通过为每个cell指定一个重用标识符(reuseIdentifier),即指定了单元格种类,当cell滚出屏幕时...,会将滚出屏幕单元格放入 重用queue,当某个未在屏幕上单元格要显示时候,就从这个queue取出单元格进行重用。...但对于多变自定义cell,有时这种重用机制会出错。...比如,当一个cell含有一个 UITextField子类并被放在重用queue以待重用,这时如果一个未包含任何子视图cell要显示在屏幕上,就会取出并使用这个重用 cell显示在无任何子视图cell...这个方法,方法意思就是“出列可重用cell”,因而只要将它换为cellForRowAtIndexPath(只从要更新cell那一行取出 cell),就可以不使用重用机制,因而问题就可以得到解决

    2.4K50

    自学Swift之路(二)UITableView自定义和实际利用

    自定义,附带场景使用(简单demo) 创建工程什么就不说了,先看一下界面然后咱们直接开始代码: ?...6EDD4AC9-47E3-401F-91A4-2DA836439787.png Demo开始之前,我们想想应该会使用到屏幕宽高等一些常用值,在OC,咱们可以使用PCH然后宏定义,然而在Swift...coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } } 代码自定义单元格加上了一个...ImageView和一个Label,虽然数据是死,但是在Swift,另外一个类是可以直接访问另一个类变量(如果没做任何保护的话),所以我们在配置cell时候是可以直接赋值,这里就不弄了,然后我们看创建表视图那一块...} } 创建单元格时候直接使用我们自定义BuildListTableViewCell创建就行了 好了,这篇文章也完了,这只是一个非常简单demo,大家平时工作要做肯定不止这么点,哈哈哈

    2.3K90

    iOS表视图单元格高度自适应

    iOS表视图高度自适应可以节省很多麻烦,尤其是涉及到复杂业务逻辑时,今天尝试了使用Masonry和FDTemplatelayoutCell来布局表视图单元格,从而达到单元格高度自适应效果,这里就总结了这其中使用要点和注意问题...首先,为了实现表视图单元格高度自适应,我们需要用到Masony和FDTemplatelayoutCell这两个第三方类库。同时这里使用一个简化订单界面来说明使用,效果图如下: ?...我们需要做就是使用Masonry对视图单元格位于最底部视图设置bottom约束,使其能够确定距离单元格最低端距离。...使用时候关键步骤包括: 1、注册表视图单元格 这里分为NIb文件和普通类文件单元格注册,我使用是xib文件创建单元格,代码如下: - (UITableView *)tableView{...返回单元格高度我们就不必计算了,使用如下方法来返回 //单元格高度 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath

    1.8K70

    【IOS开发基础系列】UICollectionView专题

    1.3 关于重用         为了得到高效View,对于cell重用是必须,避免了不断生成和销毁对象操作,这与在UITableView情况是一致。...在iOS5,Apple对UITableView重用做了简化,以往要写类似这样代码: UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier...这个特性很受欢迎,因此在UICollectionViewApple继承使用了这个特性,并且把其进行了一些扩展。...这次Apple给我们带来好康是被选中cell自动变化,所有的cell子view,也包括contentView子view,在当cell被选中时,会自动去查找view是否有被选中状态下改变。...关于详细自定义UICollectionViewLayout和一些细节,我将写在之后一篇笔记

    59730

    使用UITableViewCell遇到问题

    最近在使用此控件时却遇到了一些问题,UITableView每个小控件是UITableViewCell。大多数UITableViewCell都需要自定义,这样会更灵活些,能满足我们功能上需求。...先说我问题吧: 项目需求:一个UITableView上有两种类型UITableViewCell。 根据项目需求这时需要自定义两种类型UITableViewCell(这里我们称为A、B两种类型)。...在我定义好了两种UITableViewCell之后在使用时候却出现了问题:在我使用B类型对象时候Xcode却告诉我此对象是A类型对象,因此不能调用B类型对象相关方法。...return cell; 6.            } else{ // 最后一个单元格 7.               ...当时我以为是Xcode一个bug呢,最后发现还是我问题. 发现原因:我跳到了方法:[FooterCell cellWithTableView:tableView];,发现问题出现在了这里。

    77410

    iOS开发常用之网络

    表相关与TabBar SWTableViewCell - 国内开源作者,带很多手势单元格。 MCSwipeTableViewCell - 带很多手势单元格。...Horizo​​ntalScrollCell - Horizo​​ntalScrollCell是一款使用方便水平方向可滚动单元格,适用于UICollectionView实现水片方向滚动视图。...QuickRearrangeTableView - 基于UITableView快速重排功能扩展子类。通过长按选定单元格然后滚动移动到指定位置。...Context-Menu.iOS - 可以为应用程序菜单添加漂亮动画内容,可自定义图标,并可根据自己喜好设计单元格和布局。...更赞是额外附了详细开发教程如何在Swift制作Tinder-Like Koloda动画网页链接 .Yalantis出品动画程序款款精品。

    23.6K10

    iOS UITableView代理方法详解 原

    iOS UITableView代理方法详解 一、补充 在上一篇博客,http://my.oschina.net/u/2340880/blog/404605,我将IOStableView(表视图)...editingStyle参数是一个枚举,代表了cell被编辑模式,如下: typedef NS_ENUM(NSInteger, UITableViewCellEditingStyle) {     UITableViewCellEditingStyleNone...estimatedHeightForFooterInSection:(NSInteger)section; 设置自定义头视图和尾视图 - (UIView *)tableView:(UITableView...:(NSIndexPath *)indexPath; 自定义删除按钮标题 - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath...:(NSIndexPath *)indexPath; 下面这个方法是IOS8新方法,用于自定义创建tableView被编辑时右边按钮,按钮类型为UITableViewRowAction。

    1.4K40
    领券