Swift学习记录 -- 15.tableView的创建与基本操作

Swift iOS开发实战:从ARC内存管理到App Store审核避坑指南 Swift作为iOS开发的核心语言,其价值远不止类型安全与语法简洁——它深度耦合UIKit生命周期、ARC内存模型与结构化并发机制。理解Optional如何根治空值崩溃、Result与async/await如何重构异步错误处理、@StateObject与@Binding如何划定状态边界,是构建高稳定性App的基础。尤其在真实生产环境中,内存泄漏、SIGABRT崩溃、网络超时、Preview预览失败等高频问题,本质都源于对Swift与iOS平台协同逻辑的误读。本文聚焦Swift在UIKit和SwiftUI双栈 阅读详情

算是正式接触到真正的东西了吧 , 大概写了下 , 不是太习惯 , 虽然有了extension , 和// MARK:- 分类注释 , 懒加载也不是太习惯 . 可能是OC敲太多了 , 还不是太适应吧 .


import UIKit

class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate{

    //懒加载
    let tableView:UITableView = {

        let tableView = UITableView()
        tableView.rowHeight = 100
        tableView.estimatedRowHeight = 100

        tableView.separatorColor = UIColor.redColor()

        return tableView
    }()


    override func viewDidLoad() {
        super.viewDidLoad()

        initUI()
    }
}

// extension + 类名  扩展,将方法抽出封装 (跟OC分类有点像,只能扩充方法,不能扩充属性)

// MARK:- 初始化UI
extension ViewController {

    func initUI() {

        //设置frame
        tableView.frame = view.bounds
        //设置数据源
        tableView.dataSource = self
        //设置代理
        tableView.delegate = self
        //添加到view上
        view.addSubview(tableView)

    }
}

// MARK:- 代理方法
extension ViewController{

    //代理方法
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        print("当前选中行 - \(indexPath.row)")
    }
    func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {

    }
}

// MARK:- 数据源方法
extension ViewController{

    //数据源方法
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return 10
    }
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cellID = "cell"
        var cell = tableView.dequeueReusableCellWithIdentifier(cellID)
        if cell == nil {

            //枚举的使用 : 1.枚举类型 + '.' + 具体类型 2.'.'+具体类型
            //            cell = UITableViewCell(style:UITableViewCellStyle.Default, reuseIdentifier: cellID)
            cell = UITableViewCell(style: .Default, reuseIdentifier: cellID)
        }

        cell?.textLabel?.text = "嘿嘿嘿-\(indexPath.row)"

        return cell!
    }
}
swift-SwiftiOS:一个简陋的TableView封装 Swift iOS : 一个简陋的UITableViewDatasource和UITableViewDelegate封装 立即下载

相关推荐

swift-tableview的一个简单的封装不用每次都实现坑爹的delegate

tableview的一个简单的封装,不用每次都实现坑爹的delegate

swift tableview 封装_整洁的 Table View 代码

Table view 是 iOS 应用程序中非常通用的组件。许多代码和 table view 都有直接或间接的关系,随便举几个例子,比如提供数据、更新 table view,控制它的行为以及响应选择事件。在这篇文章中,我们将会展示保持 table view 相关代码的整洁和良好组织的技术。 UITableViewController vs. UIViewControllerApple 提供了 UI...

weixin_39545895的博客 560

ANSYS Products19.1下载及安装教程

ANSYS Products19.1下载及安装破解教程 前言 ANSYS软件是美国ANSYS公司研制的大型通用有限元分析(FEA)软件,是世界范围内增长最快的计算机辅助工程(CAE)软件,能与多数计算机辅助设计(CAD,computer Aided design)软件接口,实现数据的共享和交换,如Creo, NASTRAN、Algor、I-DEAS、AutoCAD等。ansys project包括一整套的软件集合,它耦合了CFD模型的前处理,求解器和后处理所需要的相关软件,特比是它的workbench模块,

Mekeater的博客 2万+

swift命令行工具使用指南

swift工具是一个命令行工具,用于与OpenStack Object Storage (swift)环境通信。它允许人们执行几种类型的操作。有关特定。

HHFQ的博客 1561

深入MIPI DSI显示技术栈 (三) DSI vs CSI-2:孪生协议的本质差异

MIPI协议中的DSI与CSI-2存在本质差异:DSI为输出导向协议(Host→Display),用于屏幕控制和画面传输;CSI-2为输入导向协议(Sensor→Host),专攻图像采集。二者在包结构、同步机制、物理层优化等方面均有显著区别:DSI支持命令包和BLLP包,CSI-2具备嵌入式数据包;DSI时钟模式以Burst为主,CSI-2支持Continuous模式。典型场景中,二者协同工作(如手机相机预览),需注意时序同步和延迟控制。设计混合系统时,需合理规划虚拟通道和物理层资源,充分发挥这对&quot

GateWorld的博客 2106

即插即用系列(代码实践)| GRSL 2024 ARConv核心模块:自适应矩形卷积——专为遥感图像设计,打破固定方形卷积束缚

摘要: 本文提出了一种用于遥感图像处理的自适应矩形卷积模块(ARConv),解决了传统方形卷积核在处理复杂几何结构(如细长道路、密集建筑物)时导致的光谱混叠和边缘模糊问题。ARConv通过动态调整卷积核的长宽比和旋转角度,使卷积核形状与地物特征自适应匹配。该模块可即插即用于全色锐化、语义分割等遥感任务,有效提升边缘保持能力和光谱保真度。核心代码基于PyTorch实现,包含偏移量生成和几何变换逻辑,支持梯度缩放以稳定训练。

分享顶会顶刊论文即插即用模块 140

Swift父类tableView,网络请求等操作的封装

之前在网上看到一个OC封装的父类,即把网络请求,网络出错处理,没有数据处理,tableView的上下拉刷新,tableView的dataSource和delegate,cell的初始化,高度的计算,分页等都封装到父类.方便开发使用,无需每次都敲一遍. 这边我自己用Swift3.1又实现了一遍(其中有封装的比较简单的父类,也有封装比较全的父类)并且将其进行了改进(个人认为是改进),方便开发使用,去除...

weixin_34268843的博客 249

基于STM32L4XX、HAL库的ICM-42607-P姿态传感器驱动程序设计

/ 转换为dps(±1000dps量程)float accel_x = sensor_data.accel_x * (8.0f / 32768.0f);// 转换为g值(±8g量程)#define ICM42607_I2C_ADDR 0x68 << 1 // I2C地址(SA0=0)= 0x40) { // ICM-42607的WHO_AM_I值为0x40。// 读取传感器数据。

zhusl6688的博客 835

PullToMakeSoup 迁移指南:从 Swift 3 到 Swift 5 的兼容适配经验

PullToMakeSoup 是一款可以直接挂载到 UIScrollView 上的自定义**下拉刷新动画组件**,用煮汤的趣味动画替代系统默认刷新菊花。如果你正在维护一个基于 **Swift 3 迁移到 Swift 5** 的老项目,这篇文章就是为你准备的实战笔记——我们会一起梳理语法差异、依赖适配和踩坑点,让你的**下拉刷新动画库**在最新的 Xcode 环境下平稳运行。 [![PullToM

gitblog_00744的博客 999

GVINS数据采集(u-blox fp9 + D435i)

1、配置千寻的RTK账号 采集数据当天购买千寻的RTK账号,然后在Window下,输入账号和密码 (具体的步骤如之前面连接所示),查看u-center软件上的信息,确保接收机可以收到RTK信息; 2、查看Linux系统下u-blox是否可以正常接受GPS信号和RTK数据流 1、GPS信号信息 // 打开端口 1 cd ublox_f9p/src // 或者在终端1下也可以 source devel/setup.bash r.....................

努力努力努力 2609

电子电器架构刷写方案——General Flash Bootloader

### 文章大体有如下内容: ### 1、简介 ### 2、刷写系统概述 ### 3、Flash Bootloader刷写流程 ### 4、Flash Bootloader架构介绍 ### 5、关于刷写的思考

Soly_kun的博客 2209

iOS tableView 底部显示"没有更多记录了"

    联系人:石虎 QQ:1224614774  昵称: 嗡嘛呢叭咪哄                          QQ群:807236138   群称: iOS 技术交流学习群   一、概念 - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{   ...

石虎 2040

CT探测器普遍采用“星形拓扑+多ADC模组”架构的TDC(时间数字转换器)设计方案

本文提出一种基于TDC反馈机制的CT探测器时钟同步方法,通过延时测量、偏差计算和动态补偿三步硬件流水线,实现高精度同步。系统采用Xilinx Kintex UltraScale FPGA内置CARRY8进位链构建3.5ps分辨率的TDC,结合多级比较器和延迟单元,形成闭环反馈控制。实验表明,在512通道、1.28m传输距离下,同步精度稳定在10ps以内,较传统方案提升两个数量级,并能动态补偿干扰抖动。该方案解决了传统方法在CT旋转腔体环境下精度不足的问题,为下一代超高清CT提供了有效的时钟同步解决方案。

whm128的博客 274

TableView的数据记录实现

TableView的应用,真是有许多要讲的了,在我们做项目过程中,很多都用到TableVie,下面就讲到tableView实现商品购买,实现数据记录的方法。先看效果图。 单元格的ib文件 // // ViewController.h // TableView数据记录 // // Created by 小黑...

weixin_30840573的博客 90

PyRoki:机器人运动学优化库入门教程

PyRoki:模块化机器人运动学优化工具包 本文介绍了PyRoki,一个模块化、可扩展且跨平台的机器人运动学优化工具包。PyRoki通过统一变量和成本函数接口,简化了逆运动学、轨迹优化和运动重定向等任务的实现,支持CPU、GPU和TPU加速。实验表明,PyRoki在批量逆运动学任务中比现有GPU加速库cuRobo快1.4-1.7倍,且收敛误差更低。其模块化设计支持快速集成新成本函数,并通过交互式可视化工具优化参数配置。PyRoki开源发布,为机器人运动优化提供了灵活高效的解决方案。

机器人控制与仿真应用 1291

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TableView Summary

Tableview 在ISO中的使用很频繁,我也是刚刚学习ISO开发,就些想就TableView总结一下。有什么错误或补充请大家提出来,Welcome your valuable comments.;) 一、简单的列表。 在开发之前我想大家应该知道TableView有两个重要的委托:UITableViewDataSources, UITableViewDelegate. 这两个一个是

Start from Hello World 592

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

iOS 15.0 和 Xcode 13更新

其他: 暂无 更新:(官方示例:) Xcode 13 包括对Swift 并发编程的本机支持、对Xcode Cloud持续集成和交付的支持、对 Git 拉取请求的集成支持、使用 DocC 在 Swift 框架中创建和查看文档的能力、Vim 键绑定支持、Swift 包集合,以及更多的。有关详细信息,请参阅Xcode 中包含的内容。(78887232) 您现在可以cktool在命令行上使用与您的CloudKit数据库架构和记录进行交互。有关可用命令的列表,请运行man cktool或xcrun cktool --

疯狐狸的博客 1803

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

iOS15 TableView根据indexPath获取cell不对

线上明明跑着好好的项目,老板给发了录屏,说项目中隔山打牛了。 默默的打开自己的手机(系统为14.8),发现没复现,模拟器(15.0)也没有复现,只有iOS15以上系统真机复现了。 原因是这样的: 点击cell时获取的cell竟然不是对应位置的cell,而是获取其他复用的cell。 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { le

GSSGoodLuck的博客 1440

第一天:Swift秒表加UITableView记录展示

  参考链接:https://www.jianshu.com/p/5caa93d66d02   (默背下代码添加了一个 tableView,重新手打一次,由于时间限制不再进行文字描述。)   这里主要记录一点,把定时器加到 runloop 中,模式为 commonModes: 1 RunLoop.current.add(self.time, forMode: .commonModes)...

weixin_30455365的博客 81

【Swift 适配iOS15】踩坑记录 - 想做次第一个吃螃蟹的人

  昨天iOS15发布了,但是对于开发者来说又多了一些适配问题。   1、UITableView位置下移了? if #available(iOS 15.0, *) { self.mainTableView.sectionHeaderTopPadding = 0 }   2、UITabBar显示是不是异常了? if #availabl...

Landen2011的博客 385

tableview小结

初学者的问题主要集中在,下面几个问题: 一、几个函数总是不被调用:例如: - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section; 这个代理不被调用的种类很多: 1. section的count没有正确 2. 没有设置代理 3.如果没有设置seciton的高度,仍然

郭晓东的专栏 2503

iOS 给TableView添加Footer或Header

给TableView添加Footer或Header 下面仅以footer示例- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { if (section == 0) { return 0.1; }else if (section == 1

BearsG 1万+

iOS开发 自定义tableView样式(使用代码/使用Interface Builder)、分组显示、给TableView增加索引、给TableView增加SearchBar...

1、使用代码 自定义tableView样式有两种方法,一种是用代码写cell的subView,另一种是导入nib文件(就是用Interface Builder设计),这篇笔记记录的是代码的方法.1、新建一个Single View Application 项目,如前文,只选Use Automatic Reference Counting.2、打开PDViewController.xib,拖...

移动开发记录 275

tableView嵌套collectionView

首先是自定义collectionView填充的tableViewCell import UIKit // 定义一个collectionView,重写初始化大小和布局方法 class TrendsDetailZanCollectionView: UICollectionView { var indexPath: NSIndexPath! o...

aycj34508的博客 252

iOS开发 自定义tableView样式(使用代码/使用Interface Builder)、分组显示、给TableView增加索引、给TableView增加SearchBar

1、使用代码 自定义tableView样式有两种方法,一种是用代码写cell的subView,另一种是导入nib文件(就是用Interface Builder设计),这篇笔记记录的是代码的方法. 1、新建一个Single View Application 项目,如前文,只选Use Automatic Reference Counting. 2、打开PDViewController.xib

IOS开发笔记 2775
上一篇: Swift学习记录 -- 14.闭包的使用和解决循环引用方法
下一篇: Swift学习记录 -- 16.微博项目初体验
coderMy
博客等级 码龄10年 43粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值