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

【iOS7一些总结】9、与列表显示(在):列表显示UITableView

列表显示,顾名思义它是在一个列表视图的形式显示在屏幕上的数据的内容。于ios在列表视图UITableView达到。这个类在实际应用中频繁,是很easy理解。...UITableView定义在头文件UITableView.h中,详细的定义能够查看官方文档;从定义中能够看出,UITableView继承自UIScrollView类,因此在支持方便地显示列表数据的同一时候...这里主要记录创建UITableView的方法,下篇记录通过列表视图控制器使用UITableView。...和dataSource设置为self,即托付给当前视图控制器来控制表视图的数据显示和响应。...在代理方法中能够实现创建新的视图控制器并控制其载入到屏幕上。

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

    简易理解设计模式之:代理模式——iOS列表视图控件设计方式

    iOS开发中存在大量的原生自带的视图控件,在视图控制器中使用控件并不需要复杂的生成一堆对象和设置各种属性,只需要简简单单调用几个实现方法即可。苹果iOS视图控件的设计中可以说将这个模式提现得淋漓尽致。...下面我用Java的方法模拟一下: 抽象主题类:接口方法(视图只用这些方法就够了) 真实主题类:视图控制器(具体实现的方法,比如设置各种视图需要的参数等,设置完扔给代理类处理) 代理类:视图控件...UIViewController就是我们用的控制器,属于真实主题类,也就是各位使用视图控件的地方。...如果不这么做,大量UI的方法都只能写在控制器里面,造成代码臃肿。通过代理对象的方式给控制器瘦身,视图控件也得到了复用。...对于控制器来说,使用一个控件视图并不需要知道它具体的内部实现,只知道自己需要实现的方法即可。

    79020

    iOS的MVC框架之控制层的构建(下)

    而这个UITableView又刚好是一个可选的显示视图。同时我们又在视图控制器的dealloc中对这个UITableView的delegate做了置为nil的处理。...在实践中你会发现如果你是通过代码来完成视图的构建和布局那么这部分代码就有可能超过你控制器50%的代码行数。因此解决C层臃肿的一个方法就是将你的界面布局的代码都统一通过SB或者XIB来实现。...就如当功能中界面相同的两个视图控制器只是处理逻辑不相同,那么我们只需要派生出一个新的类并覆盖掉基类的处理逻辑方法即可。...也就是这种方法其实是将更新逻辑从视图控制器移到视图里面了。...我们还可以将这部分更新的逻辑提取出来让他即不在视图中处理也不在视图控制器中处理而是提供一个新的数据绑定类来解决这个问题。

    4.4K30

    iOS:分割控制器UISplitViewcontroller

    分割控制器UISplitViewController 功能:它也是ipad的一个新特性,在屏幕上可以同时显示两个控制器,左边一个,右边一个;左边的为主控制器,右边的为详细控制器,主控制器可以根据需要显示或隐藏...它对于iPhone虽然可以使用,但是不具备同时显示的特点,在iPhone的样式,就是导航控制器切换的模式。...@end 创建分割控制器、主控制器、详细控制器,并设置它们之间的关系,以及设置分割控制器的代理 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions...*imageArrayM; //图像数据 @end 创建主控制器Master的导航栏和按钮,并设置表格视图的数据源和代理 - (void)viewDidLoad { [super viewDidLoad...#pragma mark - //选中单元格时,设置详细控制器中的内容 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath

    2K30

    窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用

    一.从UITableView中来窥探协议的委托代理回调     UITableView这个高级控件在iOS开发中的出镜率是比较高的,今天的重点不是介绍如何使用UITableView, 而是让通过UITableView...我们需要做的就是,在上面界面中,我们点击任意Cell就可以Push(导航控制器展示视图控制器的一种方式,可以理解为视图控制器压栈的过程)到一个ViewController中,这个ViewController...1.实现编辑美女姓名的页面       (1) 在Storyboard上新添加一个视图控制器(UIViewController), 并命名为EditViewController,给视图控制器就是上方截图中绿色的那个视图控制器...该视图控制器的页面布局比较简单,具体如下所示: ?       ...BeautifulGrillCell 9 10 //从storyboard中实例化编辑视图控制器 11 let editViewController:

    3.6K80

    iOS架构入门 - MVC模式实例演示

    除此之外,此模式通过对复杂度的简化,使程序结构更加直观 控制器(Controller)--> 负责转发请求,对请求进行处理。 视图(View) --> 界面设计人员进行图形界面设计。...,先说这样写的好处,以及初学者为什么会这么写: 比如按钮,可以在当前控制器直接add target:添加点击事件,在当前控制器内就能调用到点击方法,不需要设置代理之类的; 比如要找某个界面,直接切到这个界面对应的...: 导致Controller特别臃肿,里面代码特别多,视图一复杂起来,代码量可能过1000行,不好维护 写在Controller里无法复用,除非你在 VC2里面 copy 当前VC中的 View的代码...: 又导致Controller特别臃肿,里面代码特别多,如果当前控制器需要多次请求,代码量可能过1000行,不好维护 写在Controller里无法复用,除非你在 VC2里面 copy 当前VC中的 网络请求的代码...讲解完毕,其实本质上就是让Controller减压,不该控制器管的他别让他知道,如上基础MVC操作之后的优势: MVC架构分明,在同一个模块内,如果视图有问题,找到该模块的View就行,其他同理,Controller

    1.3K00

    Cocoa编程中视图控制器与视图类详解

    进度与活动: UIActivityIndicatorView UIProgressView  控制器类 UIViewController类       UIViewController负责创建其管理的视图及在低内存的时候将它们从内存中移除...还为标准的系统行为进行响应。从语法上 说,UIViewController是视图控制器的父类。视图控制器类是没有可视化表示的抽象类,只有它管理的视图才提供可视画布。记住:1....使用pushViewController: animated:可推入一个新的控制器,从而增加新的项到导航栈。(记住:导航栏控制器不添加一个视图进去,这个导航栏是没有意义的!)...推入时,新的视图控制器从右方滑入屏幕(假定animated:YES)。向左指的Back后退按钮出现,可返回到上一步,且Back按钮用的是上一个视图控制器的标题。 2....)和栏标题(title)、用于显示标题的视图(titleView),以及用于从当前视图向后导航的Back按钮(backBarButtonItem)和隐藏后退按钮(hidesBackButton)。

    5.1K50

    iOS 9 Storyboard 教程(一下)

    回到storyboard然后选中Table View Controller(确保你选的是实际的视图控制器而不是它里面的某一个视图).在Identity inspector里,设置它的Class是PlayersViewController...= playersData 当定义players变量时,你可以很容易在PlayersViewController里设置样本数据.但由于这些数据在后面也许会从一个plist文件或者SQL文件中取,所以在视图控制器外部加载数据是很明智的...view)是iOS9新加入的,它可以很容易的布局视图的集合样式. ---- 拖拽一个ImageView到cell并把它放到右侧,在Size Inspector里设置它宽为81高为35.设置它的Mode在中心...这就意味着,在任何给定的时间都有超过一个实例.如果你是将一个标签从cell连接到控制器,那么几个标签的副本将会尝试使用相同的连线.这只是要求麻烦....(在另一方面,将原型cell的活动连接到视图控制器上的动作是非常好的.如果在你的cell上有自定义的按钮或者其他控件,你将会这么做的) ---- 现在你已经连接了这些属性,你可以简化数据源代码.在PlayersViewController

    3.1K20

    你可能需要为你的 APP 适配 iOS11

    一、在UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,在Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:在浏览功能上的大标题视图...要避免视图尺寸为0,可以从以下方面做: ● UINavigationBar 和 UIToolbar 提供位置 ● 开发者则必须提供视图的size,有三种方式: ① 对宽度和高度的约束; ② 实现 intrinsicContentSize...的新特性 1、 Scroll Views 如果有一些文本位于UI滚动视图的内部,并包含在导航控制器中,现在一般navigationContollers会传入一个contentInset给其最顶层的viewController...,默认情况下,表视图的整个内容避免了其根视图控制器的安全区域的插入。...经过两年的内部运营,腾讯内部应用的iOS审核通过率从平均35%提升到90%+。 现将腾讯内部产品的过审经验共享给各位。

    2.5K00

    UITableViewCell系列之(二)视觉差滚动效果前言

    前言 之前在UITableViewCell系列之(一)让你的cell支持二次编辑中说过,很早就想系统的写一篇关于UITableViewCell的文章,目的是总结一下自己在项目开发中用过的一些关于UITableViewCell...控制器不能使UITableViewController,只能是UIViewController的view上添加一个UITableView ---- 3. demo中涉及到了坐标系转换的问题,不了解坐标系转换的可以参考如下两个方法的使用...: // - (CGRect)convertRect:(CGRect)rect toView:(nullable UIView *)view; // 把以A视图为坐标系的rect1转换为以B视图为坐标系的...文件中 - (void)updateBackImageViewYForTableView:(UITableView *)tableView andView:(UIView *)view { //...控制器.m文件中 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { // 1.获取当前屏幕上显示的所有的cell NSArray

    6.1K30

    教你写个多表视图

    multi_table.gif 如图所示的多表视图是一个很常用的东西,之前我是用UIScrollView和UITableViewController做的。...把当前的控制器作为一个父控制器,添加三个UITableViewController的实例作为子控制器,把父控制器中的 scrollView 作为容器,然后添加子控制器中的 tableView 作为子视图...override init(frame: CGRect) { super.init(frame: frame) tableView = UITableView(frame...,可能大部分人习惯把控制器又当 dataSource 又当 delegate,不过我比较喜欢分开,就算是用同一个控制器,也会用extension把代码分开。...这样就完成了一个多表视图,实际项目一般会在 table 上方放个小滑块指示器什么的,也很简单,只要在cellForItemAtIndexPath方法中根据indexPath.section来设置滑块位置就好了

    1.3K30

    你可能需要为你的APP适配iOS11

    一 在UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,在Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:在浏览功能上的大标题视图...要避免视图尺寸为0,可以从以下方面做: ● UINavigationBar 和 UIToolbar 提供位置 ● 开发者则必须提供视图的size,有三种方式:  ① 对宽度和高度的约束; ② 实现 intrinsicContentSize...的新特性 Scroll Views 如果有一些文本位于UI滚动视图的内部,并包含在导航控制器中,现在一般navigationContollers会传入一个contentInset给其最顶层的viewController...默认情况下,表视图的整个内容避免了其根视图控制器的安全区域的插入。...经过两年的内部运营,腾讯内部应用的iOS审核通过率从平均35%提升到90%+。 现将腾讯内部产品的过审经验共享给各位。

    82920

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

    一 主控制器为UITableViewController或其子类   首先,有一个很简单的解决方案,就是将我们的控制器换成UITableViewController或其子类,UITableViewController...但是,如果我们的整体布局并不是只有一个UITableView,或者我们在项目中需要用到MBProgressHUD框架时,我们可能就不能直接将我们的控制器设置成UITableViewController或其子类...框架官方文档中就有提到要避免将HUD添加到具有复杂视图层次结构的某些UIKit视图(如UITableView或UICollectionView),UITableViewController和UICollectionViewController...翻译:你可以在任何视图或窗口上添加HUD。 然而,避免将HUD添加到具有复杂视图层次结构的某些UIKit视图(如UITableView或UICollectionView)是一个好主意。...2.1 UITextField或UITextView点击之后的详细流程   在对cell进行封装和自定义的时候,我们需要考虑我们的UITextField或UITextView从点击编辑框到结束编辑的整个过程是怎么样的

    3.9K80

    iOS 9 Storyboard 教程(二下)

    每当segue将要创建的时候prepareForSegue(_:sender:)都会被调用.在退回(dismiss)这个视图的时候,你需要重写这个方法来存储你输入的玩家对象的数据. ---- Note:...当你关闭 Add Player控制器,也点击了Cancel和Done按钮的时候,你应该会看到deinit里print()方法输出地状态信息.如果你再一次打开了这个控制器,你应该也会再一次看到从init?...你没有写任何代码调用新的控制器.你只是按住ctrl键并从静态table view cell拖拽出了新的控制器.你写的唯一的代码就是填充tableView的内容,这通常是更动态的而不是硬编码列表....当然,如果不发送任何返回数据,这个新的控制器将不是很有用,所以你还需要为它添加一个新的unwind segue....Game控制器里选择了一个游戏,上面的代码就会执行.这个方法会更新控制器里的标签以及选中游戏的属性.unwind segue 也会将GamePickerViewController从导航栈里弹出.

    2.2K10

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

    bar = [[UISearchBar alloc] initWithFrame: CGRectMake(0, 50, self.view.frame.size.width, 80)];  //添加到控制器的视图上...self.searchBar.keyboardType = UIKeyboardTypeNamePhonePad; self.searchBar.showsBookmarkButton = YES;     //将seachBar作为控制器的透视图...cell         对于搜索结果表视图,IOS并不会随着SearchVC的退出而移除(应该是处于提高cell重用角度考虑),所以第二次进入视图时,默认其实还是显示的上次搜素结果cell,一定要注意清除状态...另外,要注意表视图的cell重用问题,上下滑动时,下面的cell可能就是用的上面视图的某一个cell,里面数据都没有清空的,要记得全部更新。...     searchVC.searchResultsUpdater = self; //协议(UISearchResultsUpdating)     //将搜索控制器的搜索条设置为页眉视图 self.tableView.tableHeaderView

    59120
    领券