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

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

在第一个 ViewController 中放入一个Label 然后输入文本“FirstTab”。在第2个ViewController中放入一个 Label 并输入文本“Second Tab”。...以这种方式,你可以创建超过 5 个的ViewController 给TabBarController,它将自动在Tabbar 上显示 More... 按钮。...这是故事板编辑器自动放入的,因为这个场景现在将在NavigationController 的 frame 内显示。...但我想在单元格右边加一张图片以显示玩家级别(以星级的形式)。UITableViewCell的标准样式中不包含可以在单元格中放入一个ImageView,因此我只能选择定制设计。         ...最终设计完成是这个样子:         由于是定制单元格,我们不再使用cell 的 textLabel 和detailTextLabel 属性来显示文本。

1.3K30

macOS开发之NSTableView的应用详解

以列标题视图的宽度为标准 - (void)sizeToFit; //提供了这个属性,会在列标题那里显示一个排序按钮 点击列标题后可以进行排序操作(会回调相关协议方法) @property (nullable...需要注意,如果只实现这两个方法,则NSTableView会自动从列对象NSTableColume中取具体的行视图,通过dataCellForRow方法。...当objectValueForTableColumn方法将每个行具体的数据返回后,会调用cell的setObjectValue方法(因此如果要自定义cell,必须实现这个方法)。...row{ return YES; } //设置鼠标悬停在cell上显示的提示文本 - (NSString *)tableView:(NSTableView *)tableView toolTipForCell...; //获取某个范围内的列 - (NSIndexSet *)columnIndexesInRect:(NSRect)rect; //获取某个范围内的行 - (NSRange)rowsInRect:(NSRect

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

    iOS面试题梳理(三)

    对于单元格重用的理解 当屏幕上滑出屏幕时,系统会把这个单元格添加到重用队列中,等待被重用,当有新单元从屏幕外滑入屏幕内时,从重用队列中找看有没有可以重用的单元格,若有,就直接用,没有就重新创建一个。...如一个TableView中有10个单元格,但屏幕最多显示4个,实际上iPhone只为其分配4个单元格的内存,没有分配10个,当滚动单元格时,屏幕内显示的单元格重复使用这4个内存。...如何使用两个TableView产生联动:将两个tableView的滚动事件禁止掉,最外层scrollView滚动时将两个TableView跟着滚动,并且更改contentOffset,这样产生效果滚动的两个...运用字典,点击五个按钮的一个可以从字典里选择一个控制器对象,将其View显示到主控制器视图上。...SQLite中常用的SQL语句 创建表:creat table 表名 (字段名 字段数据类型 是否为主键, 字段名 字段数据类型, 字段名 字段数据类型...); 增: insert into 表名 (

    1.4K71

    iOS操作属性列表plist(增删改查)

    引 iOS的存储方式之一——属性列表plist,还是经常见到的,可以很方便的用来管理一些有序的批量数据,特别是用来显示固定的内容到表单上时,不需要在代码中反复地繁琐编写数组,而可以在plist属性列表中进行可视化操作...,这表示你打开了Root这个数组在其下进行操作,否则就表示同级操作,点击那个加号,就可以在数组内添加数据,如果最左边的三角形不是往下的,那点击加号则会再创建一个新的平级的量。...这里我们在数组内添加三条数据,类型为String型,值如图设置: 这样我们的plist属性列表就设置好了,这种可视化操作非常方便,但其实plist的本质是一个xml文件,我们可以在xml形式下查看修改也是一样的...变量,这样就可以在代码中操作这个Table View了,效果如图: 代码实现对plist的操作并显示到Table View: 1、准备工作 先打开.h文件,添加TableView的数据源和协议委托,并创建一个存储...reloadData];// 重置表单 效果如图: 7、修改plist内容 还是一样的思路,修改可变数组某个位置的内容,存入原位置,重新读取显示: //ViewController.m文件中

    1.6K20

    在iOS中怎样创建可展开的Table View?(下)

    我们设置了显示选中cell的值,作为顶层cell的textLabel的文本内容. 当顶层cell不是展开的时候,我们做了标记. 我们会把所有的子cell标记为不可见的....cell.我们要动态地组成全名,一旦姓和名都输入了.我们需要指定包含文本框的cell的索引.最后我们会在顶级cell更新显示的文本(全名),并且会刷新tableView,如下代码: func textfieldTextWasChanged...总结 正如我开始说的,创建可展开的tableView在某些时候真的很有用,从麻烦当中创建新的视图控制器,可以用这种tableView来处理,它可以为app节省时间.在这次教程先前的部分,我向你提出了一种创建可展开...tableView的方法,主要的特点就是在一个plist文件中,所有cell的描述都使用具体的属性.我向你展示了当cell显示,打开或是选中的时候,如何使用代码处理cell的描述列表;此外,我给了你一个方法通过用户输入数据来直接更新它...(例如,将cell描述列表保存到文件),然而,那已经超出了我们的目标;我们最开始所想的是实现一个可展开的tableView,根据需求显示或隐藏cell,以及我们最终所做的.我相信,在这篇教程中你会找到左右有用的信息

    1.5K30

    IOS开发之TabBarItem&NavigationBarItem

    在IOS开发中常用的多视图间的切换大致有TabBarController, NavigationBarController, 和模态窗口。第一次接触模态的概念是在Web前端的内容中接触的。...换个说法,就是登陆页面在storyboard中和其他页面是没有关系的,需要我们用业务逻辑来实现,下面是用模态的形式来进行视图切换的。...storyboard instantiateViewControllerWithIdentifier:@"myTabBarController"]; 12 13 //将界面跳转到我们的...在我们的storyboard中只需要把Hide Bottom Bar on push选中即可,选中之后我们切换到该页面时,就不会显示Tab Bar了,如下图所示。 ?   ...在View中展示数据的时候,TableView用的也是蛮多的。 对于TableView如何使用,在后面的博客会进行详细的介绍。

    1.4K80

    MVVM+RxSwift

    MVVM架构图 在ViewController 里将数据源绑定到对应的View,这里只是单向绑定,在ViewModel进行网络请求等改变数据行为的操作更新Model,再由ViewModel通知View...ViewModel 查阅了许多资料,不同人对ViewModel的实现有很多种,我这里总结了一下多数人也是我比较赞同的一种实现方法 将ViewModel理解为一个简单的黑盒子,它接受输入以产生输出,这里的输入和输出都是一个个序列...,并且提供了通过序列更新TableView的方法,这时候我们只要把ViewModel的数据输出序列绑定到TableView的数据源序列就可以了。...Navigator Navigator是从ViewController剥离出来用来控制视图跳转 上代码 下图是上述目录结构中一个页面 先分析下界面上的输入和输出 输入:进入页面时的请求,重命名按钮点击...因为在某些业务场景下我们需要保存它,比如在网络请求错误的时候,我希望页面还会继续显示之前有数据的状态,这时候我们就可以在网络请求错误的序列中塞入我们之前保存的数据,这样页面还是显示原样,还有你注意没有这个属性是

    1.5K20

    浅谈MVC

    在Web开发中,要说到MVC运用事例,以表数据的显示与处理最形象、也最好理解:一个表格控件若需要显示出一页数据,需要我们绑定一组数据,这组数据通常就是一个对象列表,而这些对象实例对应的那个实体类,就是我们的...Controller在这里分两部分来讲可能更好理解:一部分是控制数据呈现,例如某个字段数据是直接显示文本内容还是根据不同数据值显示不同图片,这个由Controller来决定;另一部分是呈现完数据后界面与用户的交互处理...在DateView中发起GetDateTime服务请求并获取到数据后,需要将日期数据传递给TableView以发起获取表业务数据并加载到页面的操作,但因为这两个View是兄弟关系,而非父子关系,所以数据的传递只能采用发通知或者写委托的方式来处理...一旦这样设计,数据交换逻辑就简单多了,可以将所有网络请求都在一个ViewController中集中处理,各个子视图只管各自子控件的布局、显示。...这两者很像,但是仔细考量其实还是不一样,两种系统设计方式分别侧重不同的开发场景: 传统三层架构设计更适合Web开发,因为Web系统重在服务端数据的大量展现,数据从用户界面产生后,最终会流转、持久化到数据库中

    95020

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

    自从引入layout margins,当将一个view添加到viewController时,viewController会修复view的的layoutMargins为UIKit定义的一个值,这些调整对外是封闭的...的新特性 1、 Scroll Views 如果有一些文本位于UI滚动视图的内部,并包含在导航控制器中,现在一般navigationContollers会传入一个contentInset给其最顶层的viewController...是个估算值,是通过estimatedRowHeight x cell的个数得到的,并不是最终的contenSize,tableView就不会一次性计算所有的cell的高度了,只会计算当前屏幕能够显示的cell...在测试Demo中,创建tableView到显示出来的过程中,contentSize的计算过程如下图: Self-Sizing在iOS11下是默认开启的,Headers, footers, and cells...从iOS 11开始有了一些改变,首先是可以给这些按钮添加图片了,然后是如果实现了以下两个iOS 11新增的代理方法,将会取代(tableView: editActionsForRowAtIndexPath

    2.5K00

    你可能需要为你的 APP 适配 iOS 11

    自从引入layout margins,当将一个view添加到viewController时,viewController会修复view的layoutMargins为UIKit定义的一个值,这些调整对外是封闭的...从iOS 7以来,我们在整个操作系统中都有这些半透明的bars,苹果鼓励我们通过这些bars绘制内容,我们是通过viewController 的edgesForExtendedLayout属性来做这些的...UIScrollView and UITableView的新特性 Scroll Views 如果有一些文本位于UI滚动视图的内部,并包含在导航控制器中,现在一般navigationContollers会传入一个...在测试Demo中,创建tableView到显示出来的过程中,contentSize的计算过程如下图: ?...从iOS 11开始有了一些改变,首先是可以给这些按钮添加图片了,然后是如果实现了以下两个iOS 11新增的代理方法,将会取代(tableView: editActionsForRowAtIndexPath

    1.7K60

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

    自从引入layout margins,当将一个view添加到viewController时,viewController会修复view的的layoutMargins为UIKit定义的一个值,这些调整对外是封闭的...的新特性 Scroll Views 如果有一些文本位于UI滚动视图的内部,并包含在导航控制器中,现在一般navigationContollers会传入一个contentInset给其最顶层的viewController...是个估算值,是通过estimatedRowHeight x cell的个数得到的,并不是最终的contenSize,tableView就不会一次性计算所有的cell的高度了,只会计算当前屏幕能够显示的cell...在测试Demo中,创建tableView到显示出来的过程中,contentSize的计算过程如下图: Self-Sizing在iOS11下是默认开启的,Headers, footers, and cells...从iOS 11开始有了一些改变,首先是可以给这些按钮添加图片了,然后是如果实现了以下两个iOS 11新增的代理方法,将会取代(tableView: editActionsForRowAtIndexPath

    82920

    iOS开发之XLForm的使用

    在iOS开发中,开发"表单"界面,字段稍微多一点的一般都用UITableView来做,而XLForm就是这样一个框架,它是创建动态表格视图最牛逼的iOS库, 用它实现表单功能,非常简单,省心省力。...导入项目.png 二、改造表单ViewController 让ViewController继承自XLFormViewController,并重写下面的两个方法 @interface OneViewController...self initializeForm]; } return self; } @end 三、构造表单 - (void)initializeForm { // 设置是否显示...Cell之间分界线 //self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; // 设置Section的高度..., UITableViewDelegate,并且持有一个UITableView,这个从该类的声明可以看出来,所以UITableView 、UITableViewDataSource, UITableViewDelegate

    1.5K80

    iOS开发之UITableView联动实现城市选择器

    这种方式总体思路如下: 1、添加两个UITableView到当前控制器中,分别设置它们的的尺寸,然后拖线到控制器中 2、左边的表格设置数据源和代理为当前控制器,然后显示数据,右边的表格也设置数据源为当前控制器...,然后显示数据操作。...3、监听左边表格控制器的点击事件,在它的点击事件中刷新右边的表格 这时候就有问题了,一个控制器要成为2个UITableView的数据源和代理,怎么办?...*/ - (NSArray*)provinces { if (_provinces == nil) { //将省份保存到数组中 但是字典保存的是无序的 所以读出来的省份也是无序的...:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath { //点击左边加载右边的数据 if

    2.2K60

    CC++ Qt 数据库与SqlTableModel组件应用

    SqlTableModel 组件可以将数据库中的特定字段动态显示在TableView表格组件中,通常设置QSqlTableModel类的变量作为数据模型后就可以显示数据表内容,界面组件中则通过QDataWidgetMapper...类实例设置为与某个数据库字段相关联,则可以实现自动显示字段的内容,不仅是显示,其还支持动态增删改查等各种复杂操作,期间不需要使用任何SQL语句。...: 程序运行后我们将在MainWindow::MainWindow(QWidget *parent)构造函数内完成数据库表记录与TableView组件字段的对应关系绑定,将数据库绑定到QDataWidgetMapper...当用户点击TableView组件内的某一行记录时,则触发MainWindow::on_currentRowChanged函数。...// 插入记录 int ret=WindowPtr->exec(); // 以模态方式显示对话框

    93610

    iOS两年前的面试题总结,现在的你掌握了嘛?

    View层,就是ViewController层,他的任务就是从ViewModel层获取数据,然后显示。 如需了解更多,请查看这篇文章 Objective-C 中是否支持垃圾回收机制?...如一个TableView中有10个单元格,但屏幕最多显示4个,实际上iPhone只为其分配4个单元格的内存,没有分配10个,当滚动单元格时,屏幕内显示的单元格重复使用这4个内存。...如何使用两个TableView产生联动:将两个tableView的滚动事件禁止掉,最外层scrollView滚动时将两个TableView跟着滚动,并且更改contentOffset,这样产生效果滚动的两个...运用字典,点击五个按钮的一个可以从字典里选择一个控制器对象,将其View显示到主控制器视图上。...SQLite中常用的SQL语句 创建表:creat table 表名 (字段名 字段数据类型 是否为主键, 字段名 字段数据类型, 字段名 字段数据类型...); 增: insert into 表名 (

    1.2K20

    iOS 9 Storyboard 教程(二下)

    引用,可以传递到这个方法.它用来往玩家数组里添加新的Player对象来作为数据源.然后它会告诉tableView添加了新的一行(在底部),因为tableView和它的数据源始终是同步的....viewController–只有初始viewController是被立即加载的.因为你的初始viewController是一个 TabBarontroller,它所包含的两个viewController...直到你segue他们,其他的viewController才被实例化.当你关闭这些viewController的时候,他们就立即被释放了.所以只有使用的ViewController才存在内存中....现在让我们给这个新的控制器一些数据来显示吧.在GamePickerViewController.swift中,把一个具有硬编码值的games字符串数组添加到顶部: var games:[String]...在Main.storyboard里,按住ctrl把tableview的单元格拖拽到Exit,就想你之前做的一样,然后从弹框中选择unwindWithSelectedGame:. ?

    2.2K10

    iOS,面试必看,最全梳理

    View层,就是ViewController层,他的任务就是从ViewModel层获取数据,然后显示。 如需了解更多,请查看这篇文章 **Objective-C **中是否支持垃圾回收机制?...如一个TableView中有10个单元格,但屏幕最多显示4个,实际上iPhone只为其分配4个单元格的内存,没有分配10个,当滚动单元格时,屏幕内显示的单元格重复使用这4个内存。...如何使用两个TableView产生联动:将两个tableView的滚动事件禁止掉,最外层scrollView滚动时将两个TableView跟着滚动,并且更改contentOffset,这样产生效果滚动的两个...运用字典,点击五个按钮的一个可以从字典里选择一个控制器对象,将其View显示到主控制器视图上。...SQLite中常用的SQL语句 创建表:creat table 表名 (字段名 字段数据类型 是否为主键, 字段名 字段数据类型, 字段名 字段数据类型...); 增: insert into 表名

    1.2K30
    领券