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

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

点击 MainStoryboard.storyboard 文件,将打开故事板编辑器:         故事板编辑器从外表上看很像是IB。...创建新连接时,新的 Tab 也同时被加到TabBarController上,名字叫做 “Item”。我想将新的场景放在第一个Tab上,可以用拖拽 Tab 的方式改变它们的顺序。         ...这样当用户点击 cell 时看起来会好一些,因为此时cell的背景为蓝色。         拖一个 ImageView 到cell 右端,紧靠着右箭头。调整它宽度为81,高度无所谓。...在项目中添加新的 File,使用Objective-C class 模板。类名为PlayerCell ,继承自UITableViewCell。...在设计自己的TableViewCell 时,你需要注意一些地方。首先,你应当设置Label 的 Highlighted Color(高亮色) ,以便用户在点击表格行时感觉更好。

1.3K30

iOS:分割控制器UISplitViewcontroller

分割控制器UISplitViewController 功能:它也是ipad的一个新特性,在屏幕上可以同时显示两个控制器,左边一个,右边一个;左边的为主控制器,右边的为详细控制器,主控制器可以根据需要显示或隐藏...介绍 Split View通常只是一个基本元素,它填满整个屏幕,不可能把Split View放到其他什么的内部,一般情况下是提供给整个app的。...: 在故事板布局的样式截图为: 下面我们就通过纯代码的方式创建如下: 1、创建两个控制器类,一个为主控制器类MasterViewController,一个为详细控制器类DetailViewController...#pragma mark - //选中单元格时,设置详细控制器中的内容 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath...点击Master,显示Master主控制器: 点击单元格时,Detail详细控制器显示的内容: 点击屏幕,关闭Master主控制器: 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

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

    iOS14开发-UIView

    子 View 的顺序和子 View 返回的数组中的位置有关(storyboard 中左侧的树形结构图中的先后顺序)。...contentView里默认有 3 个控件:2 个UILabel、1一个UIImageView,并由此产生了四种不同的 UITableViewCell 的显示样式。...(withIdentifier: "abc") // 池子中没有就创建一个新的 if cell == nil { cell = UITableViewCell...直接在 storyboard 中布局,不需要使用数据源方法,但如果需要使用到代理方法,仍然需要在控制器中实现相应的方法。 适用于基本不需要动态修改、布局固定的页面,如个人中心、设置等。...UITableViewDiffableDataSource 在 iOS 13 中引入了新的 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView

    11.9K10

    RunLoop总结:RunLoop的应用场景(三)滚动视图流畅性优化

    然后点击开始监测即可: ? 下面就是帧率: ? 这里就可以使用先使用上面的方式做一次改进。...关键代码看 DWURunLoopWorkDistribution类即可。 一点UITableView滑动性能优化扩展 影响UITableView的滑动,有哪些因素呢?...(这一点,相信大家都知道,要尽量避免在主线程中执行,一般都是创建一个子线程来执行,然后再回到主线程) 2.动态计算UITableViewCell的高度,时间过久 在iOS7之前,每一个Cell的高度,...关于这一点,我以前的做法是在Cell中定义一个public方法,用来计算Cell高度,然后计算完高度后,将高度存储在Cell对应的Model中(Model里定义一个属性来存高度),然后在渲染Cell时,...这样在为Cell各个子控件赋值时,仅仅是取值、赋值,在计算Cell高度时,也仅仅是加法运算。 3.界面中背景色透明的视图过多 为什么界面中背景色透明的视图过多会影响UITableView的流畅?

    2.2K41

    Swift| 基础语法(五)

    前言 总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift...-> Bool { // 创建UIWindow对象,并初始化该窗口的大小与主屏幕大小相同 let rect : CGRect = UIScreen.main.bounds...可以在自定义cell中处理点击状态下的显示 var label1 :UILabel? var label2 :UILabel?...因为只有init()是私有的,才能防止其他对象通过默认构造函数直接创建这个类对象,确保你的单例是真正的独一无二。...因为在Swift中,所有对象的构造器默认都是public,所以需要重写你的init让其成为私有的。 这样就保证像如下的代码编译报错,不能通过。 六、从相册选择照片或者拍照 ?

    2K30

    iOS小技能: 解决UITableViewCell兼容问题(iOS14适配)

    前言 问题:升级最新IDE Xcode,发现app首页的cell中按钮也无法点击了。...原因:往cell添加子视图的方式不规范,导致contentView 置于自定义控件的上层,引发界面无响应(注意处理相关方法) I 问题分析 iOS14 UITableViewCell的子试图不能点击或者滑动等手势响应问题...(self, alternateSEL); // 当要交换的方法不存在时,返回 NO,表示 Swizzling 失败 if (!...(originalMethod); // 往类中添加 originalSEL 方法,如果已经存在会添加失败,并返回 NO if (class_addMethod(self, originalSEL...char * alternateMethodType = method_getTypeEncoding(alternateMethod); // 往类中添加 alternateIMP 方法,如果已经存在会添加失败

    1.5K30

    iOS 性能优化常用技巧总结import

    想要使用reuseIdentifiers的话,在一个table view中添加一个新的cell时在data source object中添加这个方法: staticNSString *CellIdentifier...:indexPath]; 这个方法把那些已经存在的cell从队列中排除,或者在必要时使用先前注册的nib或者class创造新的cell。...选择正确的Collection 学会选择对业务场景最合适的类或者对象是写出能效高的代码的基础。当处理collections时这句话尤其正确。...减小文档的一个方式就是在服务端和你的app中打开gzip。这对于文字这种能有更高压缩率的数据来说会有更显著的效用。...这样的话你就只需要在滚动发生时创建你的views,避免了不划算的内存分配。 创建views的能效问题也适用于你app的其它方面。想象一下一个用户点击一个按钮的时候需要呈现一个view的场景。

    1.1K70

    iOS14适配【解决UITableViewCell兼容问题(往cell添加子视图的方式不规范)】

    2.2.1 cell.subviews 2.2.2 通过superview 获取cell的也需做相关修改 2.1 全局修改 2.2 注意事项 2.3 使用到的工具类 see also 前言 今天升级最新...IDE Xcode,准备适配iOS14 API,结果发现app首页的cell中按钮也无法点击了。...I、问题分析 iOS14 UITableViewCell的子试图不能点击或者滑动等手势响应问题,发现有问题的cell基本都是直接 cell.addSubView(tempView1) 这种方式添加的,通过...cell.addSubView,因此与之对应的方法(UITableViewCell *)[SubView superview] 和cell.subviews 都要注意谨慎使用和处理 II、使用方法交换,...UITableViewCell * myCell = (UITableViewCell *)[textField superview].superview; 所以使用class的时候,最好写得健壮性强点

    2.6K20

    iOS 9 Storyboard 教程(一下)

    现在的Table View Controller有一个空的原型cell.点击原型cell,你可以在Attributes inspector中设置它的样式(Style)和副标题(Subtitle)....tag被用在这里更加简单.在后面的课程里,你会创建一个自定义的类,继承自UITableViewCell,并且包含对应于你的cell视图的属性....然后打开PlayersViewController.swift,在这个类的底部,添加一个新方法叫做imageForRating.如下代码: func imageForRating(rating:Int)...在工程中添加一个新的文件,使用Cocoa Touch Class模板.命名它为PlayerCell,并且把它作为UITableViewCell的子类.不要勾选创建XIB的选项,正如你在storyboard...@IBOutlet weak var ratingImageView: UIImageView! 所有的变量都是IBOutlet类型的,它可以连接到当前storyboard中的控制器.

    3.1K20

    自学Swift之路(二)UITableView自定义和实际利用

    6EDD4AC9-47E3-401F-91A4-2DA836439787.png Demo开始之前,我们想想应该会使用到屏幕宽高等一些常用的值,在OC中,咱们可以使用PCH然后宏定义,然而在Swift中...import UIKit class BuildListTableViewCell: UITableViewCell { var logoImgView : UIImageView...coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } } 代码中自定义的单元格加上了一个...ImageView和一个Label,虽然数据是死的,但是在Swift中,另外一个类是可以直接访问另一个类中的变量的(如果没做任何保护的话),所以我们在配置cell的时候是可以直接赋值的,这里就不弄了,然后我们看创建表视图那一块...internal func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell

    2.4K90

    用这些 iOS 技巧让你的 APP 性能更佳

    通过将屏幕上不再可见的 tableViewCell 放入队列中进行复用,并且当新 tableViewCell即将在屏幕上可见时(例如,当用户向下滚动时,下面的后续tableViewCell),表视图将从此队列中检索...比较:Safari APP的启动页和第一个页面 (查看大图) 启动页的 storyboard 与任何其他 storyboard文件一样,除了您只能使用标准的 UIKit 类,如 UIViewController...在多任务屏幕中,我们可以看到已放在后台的应用程序列表。我们可以假设这些应用程序仍在后台运行;实际上,由于内存的需求,一些应用程序可能会被系统杀死并重新启动。...在 storyboard 中将 UIView 设置为不透明(查看大图) 或者我们可以在代码中修改 UIView 的 isOpaque 属性: view.isOpaque = true 将视图设置为不透明将使绘图系统在渲染屏幕时优化一些绘图性能...这很可能是因为应用程序在主线程上运行繁重的计算任务。 主线程中通常在 UIKit 任务(如处理用户输入)和一些间隔很小的轻量级任务之间交替。

    3.2K30

    iOS常见问题总结(一)1 Xcode中出现的问题

    1 Xcode中出现的问题 ---- 1.Xcode7.1中关于bitcode的问题 升级到Xcode7.1后,在模拟器下编译通过,但是切换到真机编译遇到如下问题 ?...Paste_Image.png 解决方式,修改一下对已ing的路径 ---- 3.默认点击tableViewCell后会出现灰色背景,并且不消失....解决方法: 点击UITableViewCell时,没有点击效果,在cellForRowAtIndexPath:方法中写上 cell.selectionStyle = UITableViewCellSelectionStyleNone...; 点击UITableCell时,Cell背景颜色不变,但是上面自定义的控件如:UILabel、UIImageView会变颜色 设置UILabel或UIImageView的Highlighted 然后...在cellForRowAtIndexPath:方法中写上 UIView *view_bg = [[[UIView alloc]initWithFrame:cell.frame]autorelease]

    70620

    iOS最全性能优化之25个建议

    在Image Views中调整图片大小 如果要在UIImageView中显示一个来自bundle的图片,你应保证图片的大小和UIImageView的大小相同。...在运行中缩放图片是很耗费资源的,特别是UIImageView嵌套在UIScrollView中的情况下。...选择正确的Collection 学会选择对业务场景最合适的类或者对象是写出能效高的代码的基础。当处理collections时这句话尤其正确。...这样的话你就只需要在滚动发生时创建你的views,避免了不划算的内存分配。创建views的能效问题也适用于你app的其它方面。想象一下一个用户点击一个按钮的时候需要呈现一个view的场景。...加速启动时间 快速打开app是很重要的,特别是用户第一次打开它时,对app来讲,第一印象太太太重要了。 你能做的就是使它尽可能做更多的异步任务,比如加载远端或者数据库数据,解析数据。

    1.6K20

    浅析RunLoop原理及其应用

    将英文拆解不难理解其实RunLoop表示一直在运行着的循环或者从上面的定义源码中可以看出就是一个do..while..循环。当启动一个iOS APP时主线程启动与其对应的RunLoop也已经开启。...这也是RunLoop的作用之一保证线程不退出。RunLoop在循环过程中监听事件,当前线程有任务时,唤醒当当线程去执行任务,任务执行完成以后,使当前线程进入休眠状态。...UIApplicationMain()函数方法会默认为主线程设置一个NSRunLoop对象,这个循环会随时监听屏幕上由用户触摸所带来的底层消息并将其传递给主线程去处理,当点击一个button事件的传递从图上的调用栈可以看出...如图代码展示,当加载高清大图渲染屏幕,而此时不得不在主线程操作,会引起滑动的卡顿。 tableview 在加载 cell 时如果遇到多个耗时操作会有点卡顿。...所以这里可以再次优化,将模式改为kCFRunLoopCommonModes,这样的话滑动或者不滑动都可以加载图片渲染屏幕,而且是在不影响屏幕流畅性的基础上。如以下GIF: ?

    97420

    iOS实现三列表格点选(附Demo)

    第一个数组是我用来记录最终选择的下标值(也就是点击了第三列),一共三列三个元素。 第二个数组是我用来记录每次点选第一列和第二列时候的下标的,用于刷新第二列和第三列的数据。...,把第二列的记录初始化,避免此时第二列已经点击被记录其他值 //如果这个值大于下一次刷新的第二列的数组个数,会发生数组越界的崩溃 //点击第一列,相当于后面两列数据从新分配...[self performSelector:@selector(dismiss) withObject:self afterDelay:0.1]; } } 上面是我对三个列表点击时做的不同的处理...就是在点击第一列的时候。...selected1][selected2][indexPath.row]; } return cell; } 一大堆,确实不利于观看,你们可以把这个单独写进cell类中

    87330

    IOS开发之新浪围脖

    我们往cell中添加网络请求的图片时用的时AFNetWorking中的UIKit+AFNetworking.h类目,大大简化了我们网络请求图片的操作。...2.上面的cell是我们自定义的cell,需要关联两个UITableViewCell类,然后在Cell对象中进行控件的配置和赋值,其中的一个自定义Cell的关键代码如下,在TableView中我们只需要调用...,然后在点击按钮的时候我们知道是那个Cell的那个button被点击了。       ...a.在我们Cell的类中需要定义一个block块的类型变量,用于在TableViewController中回调使用,在block回调时,我们就可以把那个Cell以及Cell中被点击的按钮传到TableViewController...下面是在Cell对应的类中,声明Block块类型的代码: //创建cell的block块把按钮的tag传到ViewController中 typedef void (^CellBlock) (ReTextTableViewCell

    1.2K50

    优化 iOS 程序性能的 25 个方法

    想要使用reuseIdentifiers的话,在一个table view中添加一个新的cell时在data source object中添加这个方法: ?...在Image Views中调整图片大小 如果要在UIImageView中显示一个来自bundle的图片,你应保证图片的大小和UIImageView的大小相同。...选择正确的Collection 学会选择对业务场景最合适的类或者对象是写出能效高的代码的基础。当处理collections时这句话尤其正确。...减小文档的一个方式就是在服务端和你的app中打开gzip。这对于文字这种能有更高压缩率的数据来说会有更显著的效用。...这样的话你就只需要在滚动发生时创建你的views,避免了不划算的内存分配。 创建views的能效问题也适用于你app的其它方面。想象一下一个用户点击一个按钮的时候需要呈现一个view的场景。

    76940
    领券