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

OpenGL ES 2.0 Making the Hardware Work for You

首先,分析图像组成: 背景色是纯黑色; 图中有一个白色直角三角形; 因为 OpenGL ES 实际绘制图形是根据坐标点来进行填充,而且三角形是由三个顶点连线组成,所以 OpenGL ES...(Union,共用体) --> 因为 OpenGL ES 坐标范围为:【-1,1】,三角形坐标系下展示为: ? 坐标系展示 ---- 数据准备已经做完,那么现在就可以进行图形绘制了。...只有一个代理方法 Controller 需要重新绘制 View 时候都会调用这个代理方法,进行绘制。...【绘制步骤:绘制前准备 --> 擦除之前绘制 --> 绘制最新】 绘制前准备,[self.baseEffect prepareToDraw]; 查看 prepareToDraw 方法: ?...同步绘制前所有的更改,保证现在要绘制图形就是最新修改; 擦除之前绘制 // Clear Frame Buffer (erase previous drawing) glClear(GL_COLOR_BUFFER_BIT

71620

关于yolov3训练自己数据集时容易出现bug集合,以及解决方法

早先写了一篇关于yolov3训练自己数据博文Pytorch实现YOLOv3训练自己数据集 其中很详细介绍了如何训练自定义数据集合,同时呢笔者也将一些容易出现bug写在了博文中,想着是可以帮助到大家...[在这里插入图片描述] [在这里插入图片描述] 问题4 windows环境下路径问题 问题描述:有些小伙伴在按照笔者步骤进行自定义数据集训练时,出现了如下报错信息: [在这里插入图片描述] 问题原因...:由于笔者是linux环境下进行实验,所以没有出现这种情况。...这个问题出现原因是由于windows系统部分符号不敏感,所以导致这种情况。...解决方法: 打开dataset.py,把162行换成163行即可 [在这里插入图片描述] 总结:由于笔者能力有限,叙述上难免有不准确地方,还请谅解。

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

【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )

获取 PList Bundle 路径 | ⑤ PList -> 数组 ) ( 2 ) 懒加载 优化 ( ① get 方法加载数据 | ② 如果为 空 才 加载 ) 八....ViewController //该方法 UIViewController 创建完成 , 并开始加载到内存中时 , 在这个时刻执行该 viewDidLoad 方法 //一般情况下 是 方法中...UI 界面 ( ① 背景 ) 设置 Main.storyboard 界面 : 1.设置背景颜色 : 选中 ViewController 根 View 控件 , 属性查看其中 设置 Background...可以之前基础上进行增量修改 ; ---- ( 8 ) 效果展示 效果展示 : ---- 三....初始化数组 self.pics = [NSArray arrayWithContentsOfFile:path]; ---- ( 2 ) 懒加载 优化 ( ① get 方法加载数据 | ②

3.7K40

UI篇-VC生命周期以及UIViewlayoutSubviews和drawRect方法

前言 看似常用UIView,其实有很多不经常用到方法和应该注意机制,我是一个喜欢打破砂锅问到底的人,可是很多问题在网上搜索不到答案,大部分博客都是转载相同东西,所以我自己就新建 Dome,实际测试了一些数据...跳转 当我们点击push时候首先会加载下一个界面然后才会调用界面的消失方法 initWithCoder:(NSCoder *)aDecoder:ViewController2 (如果用xib创建情况下...之后 viewDidAppear 之前执行,这个方法会被调用多次,如果在此创建视图,可能会创建多个,而且这个方法中执行耗时操作依然会造成跳转卡顿问题。...中跟试图初始化是需要时间,你VC根试图初始化之前调用绘制UI方法当然是不会有效果出现。...**综上两个方法都是异步执行,layoutSubviews方便数据计算,drawRect方便视图重绘。

1.8K30

Jekyll-Admin-Mac-模板处理

⚠️因为之前我们 SideMenuItemView设置了背景颜色,所以我们 SideMenuItemView.xib设置默认透明即可。 ?...之前自定义控件是加载 Xib,运行时候是可以出现。但是 Xib是无法进行预览,我以为这应该属于正常情况,毕竟程序还没有进行运行。...关于 prepareForInterfaceBuilder()方法 这个方法可以只预览 Xib时候起作用可以做一些 Moke数据。...NSButton设置 attributedTitle之前对齐方式失效 还有一个问题出现了,那就是 Xib设置文字居中,竟然运行在左边。 ?...DEC6484F-944D-4D00-B81E-B9A624D8A0A4 为了让 ViewController右侧可以显示正确界面,我们 ViewController右侧新增一个 NSView作为父试图

6.7K30

iOS App 启动性能优化

main()函数之前 不越狱情况下,以往很难精确测量main()函数之前启动耗时,因而我们也往往容易忽略掉这部分数据。小型App确实不需要太过关注这部分。...更好一点解决方法有点类似facebook,主视图会第一时间加载,但里面的数据和界面都会延后加载,这样用户就会阶段性获得视觉上变化,从而在视觉体验上感觉App启动得很快。 ?...我认为应该首先把启动过程分为四个部分: main()函数之前 main()函数之后至applicationWillFinishLaunching完成 App完成所有本地数据加载并将相应信息展示给用户...App完成所有联网数据加载并将相应信息展示给用户 1+2一起决定了我们需要用户等待多久才能出现一个主视图,同时也是技术上可以精确测量时长,1+2+3决定了用户视觉上等待出现有用信息所需要时长...优化rootViewController加载 考虑到我作为一只高级程序猴,工资很高,为了给公司节约成本,优化之前,当然需要先测试一下哪些ViewController加载耗时比较大,然后再深入到具体业务中看哪些部分存在较大优化空间

2.2K92

【IOS开发基础系列】Navigation页面导航专题

,即不是使用push方式加载子VC,而是通过AddChildViewController方式添加场景,则父级导航条会覆盖子级导航条上面,所以需要在载入时把父级导航条做隐藏处理: 1.2 navigationItem...        含有导航条ViewController中,VCnavigationItem与VC.navigationController中 navigationItem并不是同一个对象,如下图所示...animated: (BOOL)animated{     //如果进入是当前视图控制器     if (viewController == self) {         //背景设置为黑色        ...    方法一:(自定义视图方法,一般人也会采用这样方式)         就是导航向上添加一个titleView,可以使用一个label,再设置label背景颜色透明,字体什么设置就很简单了...2.5.8 Tabbar显示与隐藏 Tabbar隐藏函数,其实只Nav Push之前调用时起作用 //隐藏Tabbar [viewController setHidesBottomBarWhenPushed

35720

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

那么,没有 MainWindow.xib 文件情况下,故事板是怎样被加载到app中呢?         ...我们将实际功能加入 app 之前,让我们整理一下我们故事板。我想将第一个tab命名为 Players,第2个 tab 命名为Gestures。...以前,如果你要定制表视图单元格,你要么代码中向cell对象添加自己 subviews ,要么新建一个 nib 然后从nib 中加载你自己 cell。...2.3.6 填充table view视图数据         打开PlayersViewController.m,修改table view 数据方法: - (NSInteger) numberOfSectionsInTableView...Label Autosizing 设置如下,因此当 cell 尺寸改变时,Label 尺寸也随之变化:         经过这些调整,删除按钮出现会将星级图标挤到左边:         你也可以删除按钮出现时让星星们消失

85030

iOS性能优化之启动优化

Main函数之前性能检测 应用启动时间,一般分为Main函数执行之前和之后,执行之前称之为pre-main 系统提供了环境变量,让开发者可以看到pre-main过程中耗时 查看方式:Xcode中...这就是早期系统中,为什么经常出现内存不足提示 所以,直接使用物理内存弊端: 可以跨进程访问,数据不安全 将整个程序加载到内存,导致内存浪费 2.1.2 虚拟内存系统 现代操作系统都引入了虚拟内存,...二进制重排 4.1 缺页中断消耗 当系统访问虚拟内存时,发现数据还未加载到物理内存中,会触发缺页中断(Page Fault),造成进程阻塞。此时系统会先将数据加载到物理内存中,进程才能继续运行。...虽然每一页数据加载到内存速度很快,毫秒级别,但在应用冷启动时,可能会出现大量缺页中断,对启动速度带来一定时间消耗 使用测试项目,查看应用在启动过程中,Page Fault所带来消耗 Xcode...load方法viewDidLoad方法之前,和LinkMap文件中顺序一致 所以,按照默认配置,应用启动时,会加载到大量与启动时无关代码,导致Page Fault次数增长,影响启动时间。

1.7K11

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

加载卸载循环中,controller处理大部分逻辑。...4 controller调用viewDidLoad方法来执行一些加载时(加载时一词,相对于编译时、运行时)任务。         ...如果controller释放了它view, 它会调用 viewDidUnload.可以重载这个函数来进行额外清理操作(不要清除view和那些加载循环中无法rebuild数据)。...解决方法1:去掉动画     解决方法2:监听当前view动画是否完成     问题场景:         此类问题比较容易出现在两个vc连续push或者pop时候,简单做法就是将push或者pop...,弄明白之前会有些confusing),因此这些效果使用起来非常方便,相信一般项目中是足够使用了。

42330

兼容 - 纯代码完美适配 iPhoneX

不做处理的话, iponeX上会出现变形,我们以宽缩放比为正比缩放比,这样不管以后屏幕高度如何变化,都不会出现变形情形。...].size.height #define kNavBarHeight 44.0 //注意:请直接获取系统tabbar高度,若没有用系统tabbar,建议判断屏幕高度;之前判断 状态栏高度方法不妥...TabBar上移 系统原生Tabbarpush时候会上移 UINavigationController基类重写pushViewController代理方法Push时候修正一下TabBar...,所以它需要加载较高像素图片,我们要提供必要@3x资源。...另外由于iPhone X极高长宽比,我们用作背景图片都需要重新设计,以保证比例适合,内容被裁切后效果仍然ok。 ?

4.4K20

iOS10-iOS15主要适配回顾

否则可能导致bar背景设置无效。...ios14适配 1、更改了cell布局视图,之前将视图加载cell上,将会出现contentView遮罩,导致事件无法响应,必须将customView 放在 contentView 上 2、UIDatePicker...之前设置na bar和tab bar外观方法可能会无效 ios12适配 1、C++ 标准库libstdc++相关3个库(libstdc++、libstdc++.6、libstdc++6.0.9 )废弃...ios11适配相关 ios10适配 1、通知统一使用UserNotifications.framework框架 2、UICollectionViewCell优化,新增加Pre-Fetching预加载机制...3、苹果加强了对隐私数据保护,要对隐私数据权限做一个适配,iOS10调用相机,访问通讯录,访问相册等都要在info.plist中加入权限访问描述,不然之前你们项目涉及到这些权限地方就会直接crash

1.2K50

编码篇-继承+通知看方法实现和delloc方法调用

,也就是重写),而实际上 UITableViewCell B 中方法B设计上不是为 通知A服务,其中调用一些未知数据,所有就出现了崩溃。...,就是因为UITableViewCell B没有页面被 POP后被释放掉,才会出现这样 Crash,那么为什么没被释放呢 dealloc不被调用情况。...而且重写该方法时不能显式调用[super dealloc],和继承中先加载父类再加载子类相反,注销时先注销子类之后再注销父类。因为系统会自动帮你调用父类dealloc方法。...比如viewController中有个block属性,block中又强引用了self或者其他成员变量,那么这个viewController与自己block属性就形成循环引用,导致viewController...方法A中打印当前类名,然后多次 push进入UITableViewCell B中后再次进入 UITableViewCell A中,触发通知A,调用方法A会出现下面的情况: ?

79220

【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

; -- 数据交换 : 获取委托对象, 可以向其中存取数据, 可以作为 IOS 应用通信中心, 程序组件之间通过委托对象进行数据交互; -- 处理生命周期事件 : 应用程序委托对象还处理 IOS 应用各种生命周期事件...; -- 创建 ViewController 对象 : 该对象用于加载该对象对应 xib 等界面设计文件; self.viewController = [[FKViewController alloc.../ 让该程序窗口加载、并显示viewController视图控制器关联用户界面 self.window.rootViewController = self.viewController; //...回调该方法; -- "willMoveToSuperview : " 方法 : 将要添加到父控件之前, 回调该方法; -- "didMoveToWindow : " 方法 : 将控件添加到窗口完成时...IOS 已经下架了所有的 非 Retina 屏幕设备, 目前所有设备都是 Retina 设备, 但是之前卖出许多设备有些不是 Retina 屏幕; -- 支持 Retina 屏幕设备 :

4.9K30

iOS状态栏设置

配置,ViewController配置不生效 也可以Info.plist添加默认状态栏样式 Status bar style设置为UIStatusBarStyleLightContent或UIStatusBarStyleDefault...加载时会自动调用preferredStatusBarStyle方法和prefersStatusBarHidden方法 如果要想之后事件里设置前景色或隐藏的话,可以把样式和是否隐藏设置为全局变量,修改变量后直接调用...NavigationController中,那么直接在ViewController设置是不生效,只能在NavigationController中设置 所以如果你用Storyboard中配置NavigationController...话,就必须为NavigationController添加一个自定义类,就稍显麻烦了,所以并不推荐用这种方式设置 设置背景色 改变方法有两种 系统提供方法 navigationBarsetBarTintColor...下黑线,会导致状态栏颜色与navigationBar背景色不同,暂没找到好解决方法 6) 设置navigationBar背景透明方式 跟去黑线方式相同

2.6K11

CFRunloop 优化TableView加载高清大图UI卡顿问题。单独分批加载

TableView卡顿环境分析: tableView加载过多高清大图,Runloop不只处理iOS事件,渲染图形也是runloop处理。      ...而渲染图形UI操作必须在主线程中,不能开辟线程进行图形处理。       拖动tableView时候,Runloop要处理拖动事件,还要处理过多图片渲染,而造成卡顿。...解决卡顿分析:       1、Runloop一次循环渲染图片过多,那就让Runloop一次处理一张图片       2、将处理图片代码放在block中,然后加入数组中,处理几次加入几次。      ...        &CFRetain,         &CFRelease, NULL     }; //创建Runloop观察者  kCFRunLoopBeforeWaiting  观察等待状态之前...然后把观察者扔进runloop,这样我们就能拿到,Runloop等待之前回调。 然后把任务扔到回调中。 注意:这样还没有结束,还有一个问题待解决。

1.9K50

iOS开发过程中奇淫技巧记录

为了修改带分组tableviewsection header跟随置顶问题,网上奇淫技巧比方通过修改scroller回调方法,体验不好,正规方法是修改为tableViewUITableViewStyleGrouped...,最原始就是frame,如果是使用约束,也需要至少指定左、上,宽、高,否则约束会出现异常(xib中配置约束或者使用Masonry配置约束),比方设置一个view屏幕底部约束: [view mas_makeConstraints...,搜索框背景修改,网上都有很多奇淫技巧,发现都不正规,正规改法往往很简单,原因在于控件有很多层次,由于没有找到背景所在正确层级,所以你发现很多设置不生效,关键点是经常使用Debug View...Hierarchy观察你想要修改控件对象,这时候修改才会一步到位,比方搜索框背景修改: 不生效:     self.searchBar.backgroundColor = UIColorMake(...加载     [viewController load];      //[viewController loadViewIfNeeded];

57120

iOS 面试策略之系统框架-UIScrollView及其子类

9.说说实现预加载方法 关键词:#网络传输 #无限滚动 #Threshold 实际开发中,列表经常需要随着滑动而不停展示新内容。滑动到一定程度后,我们就需要发送网络请求,以获得新数据。...网络请求是一种耗时且昂贵操作,为了提高用户体验,开发者经常运用预加载方式提前请求,这样可以在用户滑动到列表最底部之前提前获得最新数据,无需让用户等待。这就是无限滚动列表。...以上就是一种最简单加载方法。它缺点十分明显,就是当列表很长时,会出现加载页面还没看,应用就会发出另一次请求情况。...数据,可是我们之前加载第 30 到第 40 个 cell 数据还没有被访问。...为了避免循环引用,最好方法就是我们 UICollectionViewLayout 子类中定义一个 protocol,然后让 ViewController 实现这个protocol,来完成高度获得

2.6K21
领券