swift语言IOS8开发战记3.tableViewCell

简介: 接着第二话的tableview来说,设计tableview的cell。tableview的datasource是UItableViewDataSource,代理方法是不是UItableView,而是用tableView,方法很多,我们选取我们需要的。

接着第二话的tableview来说,设计tableview的cell。tableview的datasource是UItableViewDataSource,代理方法是不是UItableView,而是用tableView,方法很多,我们选取我们需要的。

使用第二话的代码,下面来试一下改变行的高度。使用代理方法如下:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return 80
    }

行高被设定成了80,然后在每一行的左侧添加图片

首先导入一批图片


 var restaurantNames = ["cg1","cg2","cg3","cg4","cg5","cg6","cg7","cg8","cg9","cg10","cg11"]
    var restaurantImages =
    ["128.png","129.png","130.png","131.png","132.png","133.png","134.png","135.png","136.png","137.png","138.png","139.png","140.png"]

创建一个集合,将图片与cell显示的文字对应起来。然后回到关于cell的代理方法中,也就是那个返回值类型是“UItableViewCell”的tableview,增加代码如下:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let identiString = "Cell"
        var cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: identiString)
        cell.textLabel?.text = restaurantNames[indexPath.row]
        var imageName = restaurantImages[indexPath.row]
        cell.imageView?.image = UIImage(named: imageName)
       
        return cell
    }

运行,效果如图:


怎么样,是不是很炫酷呢?

imageView还有很多属性可以设置,大家可以自己去尝试,如果你用的是方形的图片但是你想改成圆角的,可以用imageView.layer.cornerRadius来设置,并且要把imageView.layer.masksToBounds设置为true。

即便你没有定义过imageView的textLabel或者imageView,它们本身就已经存在于tableview中的。如果我们每个Cell的大标题下面还需要小标题的话,可以进行如下操作,将cell初始化时的Style选项由Default改成Subtitle。在代码中增加一行detailTextLabel的设置,修改后的代码如下:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let identiString = "Cell"
        var cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: identiString)
        cell.textLabel?.text = restaurantNames[indexPath.row]
        var imageName = restaurantImages[indexPath.row]
        cell.imageView?.image = UIImage(named: imageName)
       cell.detailTextLabel?.text = "hello"
        return cell
    }

运行试试效果


还有一些好玩的东西,我们可以设置accessoryType的属性,比如当设置为如下代码时

cell.accessoryType = UITableViewCellAccessoryType.Checkmark

效果如图:


当设置为如下代码时

  cell.accessoryType = UITableViewCellAccessoryType.DetailButton

显示效果为


不一一列举了,感兴趣的小伙伴们请自己尝试,常用Iphone的同学是不是特别熟悉?

有时候我们不想用原生的设置,就是任性没办法,那我们下一话来讲解cell的自定义


目录
相关文章
|
1天前
|
JavaScript 前端开发 Swift
开发语言漫谈-Swift
wift就是个语言的大杂烩
|
5天前
|
设计模式 前端开发 Swift
使用Swift进行iOS应用开发:深入探索与最佳实践
【5月更文挑战第24天】探索Swift在iOS开发中的深度应用与最佳实践。Swift以其简洁语法、类型安全、面向对象、高性能及与Objective-C的互操作性脱颖而出。使用Xcode设置开发环境,学习Swift语法,创建并设计项目,编写业务逻辑,同时进行调试和测试。遵循MVC模式,利用SwiftUI、并发特性,并注重内存管理,持续学习新工具和技术,以实现高质量应用开发。
|
14天前
|
安全 Swift Android开发
构建移动应用:Swift vs Kotlin —— 两大主流语言的对决
【5月更文挑战第11天】Swift与Kotlin在移动应用开发中各有优势。Swift是iOS开发的首选,以其简洁语法、高性能和类型安全著称;而Kotlin是Android的官方推荐语言,以其与Java的无缝互操作、空安全特性和简洁代码受到青睐。两者在语法简洁性、性能和社区支持上表现优秀,但平台兼容性不同。开发者应根据项目需求和目标平台选择合适的语言。
|
14天前
|
存储 Swift iOS开发
使用Swift开发一个简单的iOS应用的详细步骤。
使用Swift开发iOS应用的步骤包括:创建Xcode项目,设计界面(Storyboard或代码),定义数据模型,实现业务逻辑,连接界面和逻辑,处理数据存储(如Core Data),添加网络请求(必要时),调试与测试,根据测试结果优化改进,最后提交至App Store或其它平台发布。
47 0
|
14天前
|
API 图形学 Swift
【Swift开发专栏】Swift与Core Graphics框架
【4月更文挑战第30天】本文介绍了Swift如何与Apple的Core Graphics框架结合,用于高性能的图形渲染和用户界面设计。Core Graphics提供底层绘图接口,包括图形上下文、路径、颜色空间、渐变和阴影等概念。在Swift中,开发者可直接调用Core Graphics函数,创建图形上下文、设置绘图属性、绘制图形和处理图像。文章还展示了如何实现渐变填充、阴影效果及自定义绘图代码,帮助开发者利用Swift创造复杂的图形和动画。通过掌握这些技能,开发者能为移动应用打造更具吸引力的视觉体验。
|
14天前
|
存储 安全 Swift
【Swift开发专栏】Swift的懒加载与延迟初始化
【4月更文挑战第30天】Swift中的懒加载和延迟初始化是性能优化的关键技术。懒加载(lazy)推迟了变量直到首次访问时的初始化,减少启动时间和内存消耗。延迟初始化则允许变量在首次访问前保持未初始化状态。这两种方法都能提升应用性能,减少不必要的资源加载,并提高代码组织性。但要注意线程安全、资源管理以及代码可读性。
|
14天前
|
Swift 开发者
【Swift开发专栏】Swift中的内存管理ARC机制
【4月更文挑战第30天】Swift的Automatic Reference Counting (ARC)自动管理内存,通过跟踪对象引用实现对象的释放。当引用计数为0时,系统回收内存。引用计数在变量赋值时增加,引用移除时减少。循环引用可能导致内存泄漏,Swift通过weak(可选)和unowned(非空)引用解决此问题,根据对象生命周期选择合适类型。理解ARC和正确处理循环引用是关键。
|
14天前
|
安全 Swift
【Swift开发专栏】Swift中的可选类型与解包
【4月更文挑战第30天】Swift的可选类型(Optional)用于表示变量可能无值,如用户未填写表单或空服务器数据。可选类型用问号(?)标记,状态可为包含值或nil。解包包括强制解包(!,可能触发运行时错误)、可选绑定(在if/while中安全解包)和隐式解包(声明时带!,使用时不需显式解包)。高级用法包括可选链式调用、空合并操作符(??)和可选类型比较。理解并恰当使用这些概念能提升代码的健壮性和安全性。
|
1天前
|
Java Android开发 Swift
揭秘安卓与iOS开发的核心差异
本文深入探讨了安卓与iOS这两大移动操作系统在应用开发过程中的关键不同点。我们将从编程语言、用户界面设计、应用市场政策、硬件集成以及开发者支持等多个维度展开比较,为开发者提供一个清晰的框架,帮助他们根据项目需求和目标受众选择最合适的平台。
|
14天前
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比

相关课程

更多