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

iOS中UITableViewController自带的刷新控件

iOS中UITableViewController自带的刷新控件 一、引言         在iOS开发中,使用tableView的界面,大多会用到一个下拉刷新的的控件,第三方库中,我们一般会选择比较好用的...MJRefresh,其实,在iOS6之后,系统为我们提供了一个原生的刷新控件,使用起来非常方便,只是制定性不强,如果我们没有复杂的需求,使用UIRefreshControl也是不错的一个选择。...二、UITableViewController         相对于UIViewController,UITableViewController只是在内部为我们封装好了一个UITableView,并且遵守好了相关的协议...bool值,设置为yes后每当当前controller调用ViewWillAppare的时候,都会将cell的选中状态取消,这十分有用,我们在通过点击cell跳转界面后,pop回来不需要在手动修改cell...; 这个UIRefreshControl类是iOS6之后引入的一个简单的刷新控件,我们如果设置了它,在tableView下拉的时候,系统会提供给我们一个下拉刷新的效果。

1.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【IOS开发基础系列】下拉刷新专题

    1 UIRefreshControl实现 1.1 使用范围         如果你装了xcode_4.5_developer_preview,那么在UITableViewController.h文件中你会看到...) UIRefreshControl *refreshControl     NS_AVAILABLE_IOS(6_0);     【注】:UIRefreshControl目前只能用于UITableViewController...,如果用在其他ViewController中,运行时会得到如下错误提示:(即UIRefreshControl只能被UITableViewController管理)         12012-06-15...' 1.2 如何使用 1.2.1 a)初始化         如何在UITableViewController中使用UIRefreshControl呢,在上面给出的代码附件中,你可以很详细的知道,这里介绍一下关键的部分...2.4 The detailed setup (Walk through for creating the demo project)     • 创建一个新的xcode工程     • 选择 View

    20730

    (转)iOS开发之UICollectionViewController系列(一) :Ready CollectionViewController

    这一点和UITableViewController是一样一样的。 ?...UIContentContainer 是iOS8之后添加的新的协议,也是和Size Class相关的协议。该协议中的方法可以帮助你适配视图控制器上的内容,比如内容尺寸和位置等。...UIViewController 和 UIPresentationController(iOS8的新特性,在这儿不做过多介绍)’象为该协议提供默认的实现方法。...当创建自定义视图控制器或者展示控制器时,你可以重写默认的实现方法来调整你视图控制器的内容。例如,你可以使用该方法来调整子视图控制器的大小或位置。...使用Storyboard创建一个CollectionViewController (1) 从控件库中拖拽出Collection View Controller ,你可以在Cell上添加一个ImageView

    5.5K40

    iOS开发之窥探UICollectionViewController(一) -- Ready Your CollectionViewController

    这一点和UITableViewController是一样一样的。 ?...UITraitEnvironment 是iOS8以后才引入的新的协议接口,它和Size Class有关,这个类封装了像水平和竖直方向的Size Class等信息,iOS8的UIKit中大多数UI的基础类...UIContentContainer 是iOS8之后添加的新的协议,也是和Size Class相关的协议。该协议中的方法可以帮助你适配视图控制器上的内容,比如内容尺寸和位置等。...UIViewController 和 UIPresentationController(iOS8的新特性,在这儿不做过多介绍)’象为该协议提供默认的实现方法。...当创建自定义视图控制器或者展示控制器时,你可以重写默认的实现方法来调整你视图控制器的内容。例如,你可以使用该方法来调整子视图控制器的大小或位置。

    1.6K60

    面向协议编程与 Cocoa 的邂逅 (上)

    本文笔者在 MDCC 16 (移动开发者大会) 上 iOS 专场中的主题演讲的文字整理。...所谓协议,就是一组属性和/或方法的定义,而如果某个具体类型想要遵守一个协议,那它需要实现这个协议所定义的所有这些内容。协议实际上做的事情不过是“关于实现的约定”。...真正使协议发生质变,并让大家如此关注的原因,其实是在 WWDC 2015 和 Swift 2 发布时,Apple 为协议引入了一个新特性,协议扩展,它为 Swift 语言带来了一次革命性的变化。...多继承中存在的一个重要问题是菱形缺陷,也就是子类无法确定使用哪个父类的方法。在协议的对应方面,这个问题虽然依然存在,但却是可以唯一安全地确定的。...,name 属性冲突 这种情况下,Person 无法确定要使用哪个协议扩展中 name 的定义。

    60420

    iOS App启动过程

    总结来说,大体分为如下步骤: (1) 系统为程序启动做好准备 (2) 系统将控制权交给 Dyld,Dyld 会负责后续的工作 (3) Dyld 加载程序所需的动态库 (3) Dyld 对程序进行 rebase...待Rebase的数据都存放在__LINKEDIT中。...Objc C++ 会为静态创建的对象生成初始化器,与静态语言不同,OC基于Runtime机制可以用类的名字来实例化一个类的对象。...初始化需要做的事情包括: 调用 Objc 类的 + load 函数 调用 C++ 中带有 constructor 标记的函数 非基本类型的 C++ 静态全局变量的创建 所谓执行监控启动crash的思路都是在这里构建的...程序启动时,先执行main函数,main函数是ios程序的入口点,内部会调用UIApplicationMain函数,UIApplicationMain里会创建一个UIApplication对象 ,然后创建

    2.2K30

    iOS 面试策略之经验之谈-面向协议的编程

    而 POP 恰好可以优雅得解决这些问题;其二,POP 可以保证 Swift 作为静态语言的安全性,而彼时 Objective-C 时代的 OOP,其动态特性经常会导致异常;其三,OOP 无法应用于值类型...示例代码如下: class People { var name = “”} // 创建张三,设置其名字为张三 let zhangSan = People() zhangSan.name = “张三”...// 创建李四,设置其名字为李四 let liSi = zhangSan Lisi.name = “李四” print(zhangSan.name) // 李四 print(Lisi.name) //...Swift 和 Objective-C 是不支持多继承的,因为这会造成菱形问题,即多个父类实现了同一个方法,子类无法判断继承哪个父类的情况。...其中又有两个方法为 eat 和 greet,我们发现分别在 cat 和 dog 中,eat 方法有对应类型的参数,同时 greet 也对应类型的参数。

    1.3K20

    iOS项目——自定义UITabBar与布局

    主要缺点就是需要先申请一个位置和控制器来占位比较浪费,而且这种也只适用于各控件的大小是均匀的情况,当我们需求中每个TabBarItem的规格和尺寸不一样时,我们就无法使用这种方案实现。   ...有几点值得说明一下: 设置所有UITabBarItem的文字属性在上一篇文章iOS项目——基本框架搭建中已经提到了,这里就不详细介绍了 【发布】按钮的初始化应该使用单例模式进行创建,因为我们项目中只有一个...【发布】按钮,所以使用单例模式更合理,本文采用懒加载的方式进行单例模式的创建 在  中添加【发布】按钮 [self.tabBar addSubview:self.publishButton]; 。...3 添加红点提示   现在很多App的TabBarItem在有新消息时在右上角会有一个红点提示,有的甚至还会有具体数目的提醒,类似我们常用的QQ、微信、微博、头条等都会有类似的功能,这个提示在iOS中的学名叫做...在iOS的TabBarItem是自带该属性和控件的,我们可以根据自己的需求进行配置,下图是iOS11中的配置文档,可以对提示数量、颜色进行自定义设置,还可以对提示文字的属性进行不同状态下的配置。

    3.1K90

    iOS 9 Storyboard 教程(二上)介绍Segue静态单元格(static cell)

    在第一篇文章第一篇文章中,你已经学到了Interface Builder的基本用法来创建和连线多个控制器,以及使用在storyboard中可以通过直接创建自定义的tableViewCell....介绍Segue 时候在storyboard中添加更多的控制器了.你激昂会创建一个控制器,它允许用户向这个app中添加玩家....modally.如下图: ---- Reminder: 当缩小storyboard的时候,你不能进行添加或修改.如果你创建的segue有问题,尝试双击把storyboard缩放回原来的大小!....在控制器里创建一个unwind方法,可以返回到上一个控制器. 3.在storyboard中连接方法和对象....选择textField然后按住ctrl,并用鼠标拖拽到.swift文件的顶部,类定义的底部.当弹框出现的时候,命名这个新的连接为nameTextField,然后点击Connect.在你点击Connect

    3.3K10

    iOS项目——基本框架搭建

    项目开发过程中,在完成iOS项目——项目开发环境搭建之后,我们首先需要考虑的就是我们的项目的整体框架与导航架构设计,然后在这个基础上考虑功能模块的完成。...,可以是一般的ViewController,也可以是UINavigationController barItem对应的ViewController或UINavigationController的frame...具体如何创建和配置PCH文件详情可以参见:ios中pch文件的创建与配置   下面是在编写PCH文件需要注意的一些情况: #ifndef PrefixHeader_pch #define PrefixHeader_pch..., 只会拷贝到OC源代码文件中, 不会拷贝到其他语言的源代码文件中 *****/ #endif 五 在Build Setting中配置宏    宏定义除了在类中用#define进行定义之外,在iOS...,无法跳到对应定义的位置,这时候可能就是配置在Build Setting中,例如我们经常见到的宏 DEBUG 就配置在配置在Build Setting中。 ?

    1.8K80

    在Swift中使用工厂进行依赖注入

    与其让对象创建自己的依赖关系或作为单例访问它们,不如让对象在工作中需要的一切都从外部传入。...= factory.makeMessageViewController(for: message) 就像我们在 "使用工厂模式来避免Swift中的共享状态 "中看到的那样,我非常喜欢工厂的一点是,它可以让你完全解耦对象的使用和创建...我们将首先为我们的工厂定义一个协议,这将使我们能够轻松地创建我们应用程序中需要的任何视图控制器,而不需要实际了解其依赖性或初始化器。...我们还将创建额外的工厂协议来创建我们的视图控制器的依赖关系,比如这个,让我们为我们的列表视图控制器创建一个MessageLoader: protocol MessageLoaderFactory {...由于我们已经将所有的工厂定义为协议,我们可以通过实现任何给定工厂协议的特定测试版本,在测试中轻松地模拟它们。我将在未来的博文中写更多关于模拟和如何在测试中充分利用依赖注入的内容。 你怎么看?

    83320

    关于 MVC 的一个常见的误用

    Reactive 模式或 Reducer 模式,其实所想要解决的问题本质在于,我们要如何才能更清晰地管理“用户操作,模型变更,UI 反馈”这一数据流动的方式。...你几乎无法为添加/删除/修改待办列表进行 Model 层的测试。...关于 MVC,斯坦福的 CS193p Paul 老师有一张非常经典的图,相信很多 iOS 的开发者也都看过: [w4x3vkozqi.png] 我们的例子中,我们等于把 Model 放到了 Controller...如果有多种数据来源,我们可以轻松地创建类似 **ToDoStoreCoordinator** 或者 **ToDoStoreDataProvider** 这样的类型。...由于 Swift 的数组是值类型,对于 **items** 的元素增加,删除,修改或者整体变量替换,都会触发 **didSet** 的调用。Swift 的值语义编程带来了很大的便利。

    90750

    iOS开发-1.UITableView你会用吗?

    首先创建一个UITableView.设置数据源为控制器,并实现数据源方法。 ?...Paste_Image.png 返回cell的方法,苹果默认— 用到时再创建,但是会频繁的创建,销毁,造成浪费 所以优化—里面的代码就先去缓存池子中寻找:(找不到)我们创建 注意点:关于cell的数据,...Paste_Image.png 这个只注册一次,所以在ViewDidLoad中注册 好处:不用判断缓存池子的cell是否为空,只要注册了cell,那么创建出来绝对有值。...Paste_Image.png 选中cell,点击重用标识 这样在代码中,就可以省略掉:那个判断语句:if(cell== nil){创建cell的方法} 以后在tableView中开发一个cell ?...Paste_Image.png 系统自带的方法:只能控制cell的颜色选中为灰色,或者没有。在iOS6之前是可以实现的 ?

    83430

    Swift中的内存管理

    有些同学可能觉得奇怪,Swift不是使用ARC自动管理内存的么,怎么也会发生内存泄漏呢。...它不需要全局的对象信息,一般每个被管理的对象都会跟一个引用计数器关联,这个计数器保存着当前对象被引用的次数,一旦创建一个新的引用指向该对象,引用计数就加1,每当指向该对象的某个引用失效引用计数就减1,直到引用计数为...使用引用计数法管理内存的语言也不止OC和Swift,还有诸如CPython之类的GC也是基于引用计数的。...,它继承自UIRefreshControl,可以在UITableViewController中直接使用,如下: class HouseTableCtrl: UITableViewController {...而unowned则是修饰一个nonoptional,是不能为nil的,一旦这个属性或变量指向的对象被释放了(这是有可能发生的,因为unowned引用也是不算在引用计数中的,如果除了unowned引用外没有其他引用指向那个对象

    1.6K50

    iOS学习——tableview中带编辑功能的cell键盘弹出遮挡和收起问题解决

    最近在项目中经常用到UITableView中的cell中带有UITextField或UITextView的情况,然后在这种场景下,当我们点击屏幕较下方的cell进行编辑时,这时候键盘弹出来会出现遮挡待输入的...cell,导致我们无法很方便地查看到我们输入的内容,这样的体验是非常不好的。...这个问题在之前我们的随笔iOS学习——键盘弹出遮挡输入框问题解决方案中也有讲过对应的解决方案,但是该方案在最近的应用中还有点小问题,我们在这里重新进行处理好。...一 主控制器为UITableViewController或其子类   首先,有一个很简单的解决方案,就是将我们的控制器换成UITableViewController或其子类,UITableViewController...二 主控制器为UIViewController或其子类   其实最开始我就是用的UITableViewController,结果要提示的要提示的tips总是显示不设定的位置上,后来才得以发现的这个bug

    3.9K80

    Swift 5.1 中的Self关键字

    Swift 5.1 中给 Self 增加了部分类似语法糖的功能,虽然看起来不是非常重要,但是还是能在很多地方帮助我们编写更好的代码。 ?...swift5.1: Self 1、静态成员的 Self Swift 5.1之后,可以使用 Self替代类名来访问静态成员 class ListViewController: UITableViewController...的Self关键字(或类型)使我们能够在未知具体类型的上下文中动态引用实际上的类型,例如,通过在协议扩展中引用协议的实现类型: extension Numeric { func incremented...() //num2: Double 3、 使用Self引用封闭类型 Self的范围现已扩展到还包括具体类型(例如枚举,结构体和类),使我们能够将Self用作一种引用方法或属性的封闭类型的别名...我们甚至还可以在方法或属性中使用Self内联,同时使用隐式返回,进一步使上述代码更加紧凑: extension TextTransform { static var capitalize: Self

    1.3K10
    领券