作 者 sonia,腾讯移动客户端开发 工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。 WeTest 导读 iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆、动态的新风格。 本文介绍了iOS11在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目前的APP带来异常bug。 前言 前几天发现在做的APP在iOS11系统上动画有异常,在其他系统的设备上都是正常的,动画的操作是观察tableView的contentOffset变化后执行的,异常
导语:iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆、动态的新风格。 本文介绍iOS11中在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目前的APP带来异常bug 前言 前几天发现在做的APP在 iOS11 系统上动画有异常,在其他系统的设备上都是正常的,动画的操作是观察tableView的contentOffset变化后执行的,异常动画发生在tableView reloadData之后,也就是说tableView reloadData之后,tableView的
适配iPhone X和Xcode 9的过程中,除了与导航栏相关的问题,还有一个问题经常出现,就是UITableView相关的问题。下面两个办法可以解决多数错位的问题。
在新闻类,电商类等应用中,应用着大量的图文混排视图,在表视图UITableView中,开发者通常需要在如下代理方法中计算出当前cell填充内容后的高度,之后将其返回:
目前iOS开发中大多数页面都已经开始使用Interface Builder的方式进行UI开发了,但是在一些变化比较复杂的页面,还是需要通过代码来进行UI开发的。而且有很多比较老的项目,本身就还在采用纯代码的方式进行开发。
今天要讲的RunLoop的应用场景可能太简单了,所以东西比较少。因为跟UITableView、UICollectionView等的滑动优化有关,就顺便总结一下会影响UITableView、UICollectionView等视图滑动流畅的因素。
UIScrollView 恐怕是所有 App 都绕不过去的类——尤其是它的子类 UITableView 和 UICollectionView。看看我们日常常见的 App,新闻类的今日头条,社交类的微博和微信,电商类的淘宝、腾讯,日常管理用的备忘录和图片 App 的缩放功能,都或多或少得使用了 UIScrollView 及其子类。
一、前言 我们在写列表的时候,经常出现每一个 Cell 高度不一样的情况,但是 iOS 这边是在是太不智能了 比起隔壁 android 的 RecyclerView ,人家可以自动更具每一项高度,来进行伸缩变化,iOS 的列表控件 UITableView 竟然都不能直接自适应列表高度 二、效果 其实具体的实现并不难,只是没学过的人肯定搞不出来,开始前这里可以先看下效果 大致就是 UITableView 会自动计算每一个 cell 的高度,伸缩变换后显示出来,网上有很多类似的帖子,但是大都纸上谈兵,没图没代码
目前iOS开发中大多数页面都已经开始使用Interface Builder的方式进行UI开发了,但是在一些变化比较复杂的页面,还是需要通过代码来进行UI开发的。而且有很多比较老的项目,本身就还在采用纯代码的方式进行开发。而现在iPhone和iPad屏幕尺寸越来越多,虽然开发者只需要根据屏幕点进行开发,而不需要基于像素点进行UI开发。但如果在项目中根据不同屏幕尺寸进行各种判断,写死坐标的话,这样开发起来是很吃力的。所以一般用纯代码开发UI的话,一般都是配合一些自动化布局的框架进行屏幕适配。苹果为我们提供的适配
AutoLayout简介 Autolayout是一种全新的布局技术,专门用来布局UI界面的,用来取代Frame布局在遇见屏幕尺寸多重多样的问题。Autolayout自iOS 6开始引入, 但是由于X
背景 iPhone X 刘海机于9月13日发布,给科技小春晚带来一波高潮。作为开发人员却多出来一份忧虑,iPhone X 怎么适配?我们 App 的脑袋会不会也长一刘海出来?Tabbar 会不会被圆角
在 iOS 13 中引入了新的 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView,而且可以更简单高效的实现数据的刷新。
iOS17适配指南之UIContentUnavailableView(一)主要讲解了 UIContentUnavailableView 的基本使用与 UIContentUnavailableConfiguration 的两种配置empty()、loading()。本文将介绍另外一种配置search()以及如何使用 SwiftUI 自定义配置。
前言 众所周知,Bug是线上应用极力规避但又无法避免的。对于致命的Bug,我们可以通过Crash日志进行分析;对于无法复现的Bug、特定操作步骤引起的Bug、某些版本/系统才出现的Bug,每个开发者都有自己的一套分析、定位、解决的方法。 本文以工作中遇到的几个iOS 11 Bug为例,介绍快速定位、分析、解决Bug的经验。 正文 iOS 11裁剪图片偏移问题 功能背景: 用户从本地相册选择图片,然后裁剪一个正方形区域,最后生成用户头像。 Bug描述: iOS 11的iPhone X,选择本地图片,然后
在我的iOS的MVC框架之控制层的构建(上)一文中介绍了一些控制层的构建方法,而这篇文章则继续对一些方法进行展开讨论。MVC被众多开发者所诟病的C层的膨胀,究其原因不外乎有如下几点:
最近某位同学在项目中添加了一个调试工具XXKitDebug,但是不想在线上开启,于是通过configurations进行区分,仅在'Debug' 和 'DailyBuild' 引入。(线上版本configurations是distribution)
协议与委托代理回调在之前的博客中也是经常提到和用到的在《Objective-C中的委托(代理)模式》和《iOS开发之窥探UICollectionViewController(四) --一款功能强大的自定义瀑布流》等博客内容中都用到的Delegate回调。说到协议,在Objective-C中也是有协议的,并且Swift中的协议和Objc中的协议使用起来也是大同小异的,在Java等现代面向对象编程语言中有接口(Interface)的概念,其实和Swift中或者Objc中的Protocol(协议)是一个东西。
证书问题,project与target的调试证书都必须是开发者证书,ADHOC的证书会出现此问题。
A table view is an instance of theUITableView class in one of two basic styles, plain or grouped. A plain table view is an unbroken list; a grouped table view has visually distinct sections. A table view has a data source and might have a delegate. The data source object provides the data for populating the sections and rows of the table view. The delegate object customizes its appearance and behavior.
前段时间无意中发现了看知乎,一个知乎答案和用户的精选站。网站开发者是知乎用户苏莉安,他写了个爬虫从知乎抓取数据,而且还提供了 API 文档。我大致看了下文档,感觉写个 iOS 客户端应该也挺不错的,于是就开始写了。
Hello,大家好,转眼已经来到了7月份,记得鲁迅说过:不管你上半年混的有多惨,请不要气馁,因为伟大的事业都是在下半年完成的。
前一段时间,公司招聘了一个新员工,界面做出来了,但是很卡,我看完他写的代码,发现没有对UITableViewCell进行循环使用,而且在UITableView代理方法中,创建了很多并没有什么用的对象,一些调用频繁的方法也没有很好地处理。
TableView 是 iOS 应用程序中非常通用的组件,几乎每一个界面都有一个TableView,而我们许多的代码都和TableView有关系,比如数据展示、更新TableView,一些响应选择事件等,而这些大多都会通过其代理函数来实现,所以在VC中我们通常需要实现大量TableView的代理函数,如下面这样
使用的是”预估行高+自动布局“的方法实现动态行高(适用于 iOS7.0 以后系统)。
iOS中UI的布局是很重要的,而在前期开发中就要选定好布局的方法,因为这对整个工程乃至于后期的版本维护都有很重要的影响。本文从比较老的Frame到新生AutoLayout都进行了浅显的总结,希望对大家的UI布局学习有所帮助
made in 小蠢驴的配图 说起iOS开发,很多人的印象就是-弄一个tableView,把数据全丢到上面展示,听起来好像很粗糙,不过仔细一想,确实展示数据内容的,用的tableView是最多的了吧,说到这里,今天的男一号-tableViewCell就要登场了。 本文的主题是--tableViewCell的高度自适应,计算cell高度的方法确实有好几种,因为做cell的时候,比较简单的界面我都是直接拉xib,手动连接约束比较省事,所以今天就来探索一波-- 使用xib实现cell高度
首先建立一个cell的类,用于存放cell中的内容 ,继承自uitableviewcell;
iOS tableView设置style:UITableViewStyleGrouped 时,非第一个section的间距失效的解决方案: 必须全部实现FooterInSection及FooterInSection对应的四个代理方法才有效(四个必须同时实现)
我们首页有点复杂,因为结构是下面是一个横向滚动的 UIScrollView 上面是一个 UITableView 但是整体看起来是连贯的 所以上面的 UITableView 的高度就要算出来。
表相关与的TabBar SWTableViewCell - 国内开源作者,带很多手势的表单元格。 MCSwipeTableViewCell - 带很多手势的表单元格。 TMQuiltView - 瀑布流。 XRWaterfallLayout - 超简单的瀑布流实现,实现说明。 WaterfallFlowDemo - 一个简单的UICollectionView瀑布流布局演示demo。 XLForm - 很多表格类的表,写法更高冷一点,推荐使用。 Eureka.swift - Eur
DTCoreText是可以将HTML字符串转化为富文本使用的工具,既保证原生实现又能适应灵活的样式修改,而且相比于使用WebView显示内容在性能上也有很大优势。本篇就这一技术的使用进行总结。 目录 一、相关资源 二、DTCoreText的集成 三、DTCoreText的使用 四、可能遇到的错误 五、参考链接 一、相关资源 DTCoreText源码下载 DTCoreText官方文档 DTCoreText集成文档 本文DTCoreText测试工程 温馨提示:文中代码量比较大,看起来可能比较费劲,所以先
iOS表视图高度自适应可以节省很多麻烦,尤其是涉及到复杂的业务逻辑时,今天尝试了使用Masonry和FDTemplatelayoutCell来布局表视图单元格,从而达到单元格高度自适应的效果,这里就总
1.分辨率:320*480,640*960 2.icon图标需要两个(57*57) 114*114 用于视网膜屏幕 icon@2x.png,icon.png 3.狂写代码,先写再调试、搜索、自学 4.iphone5设备是4英寸之前是3.5英寸,视网膜技术960*640 iphone4 5.320*480 启动页 640*960 Default@2x.png iphone5 Default-568h@2x.png 6.icon需要有29*29 和 58*58 7.模拟器快捷键: 8.沙盒:IOS
好长时间没为大家带来iOS开发干货的东西了,今天给大家分享一个头条新闻客户端各个类别进行切换的一个示例。在Demo中对所需的组件进行的简单封装,在封装的组件中使用的是纯代码的形式,如果想要在项目中进行使用,稍微进行修改即可。 废话少说,先介绍一下功能点,下图是整个Demo的功能点,最上面左边的TabBarButtonItem是用来减少条目的,比如下图有三个按钮,点击减号会减少一个条目。右边的为增加一个条目。点击相应的按钮是切换到对应的表视图上,下方红色的是滑动的指示器,同时支持手势滑动。运行具体效果
参考:https://www.jianshu.com/p/b42030a37953 https://blog.csdn.net/weixin_34037977/article/details/91634236
随着大数据时代的到来,数据采集也已经变的越来越重要。前端埋点作为一个比较成熟的数据接入手段被广泛应用着。目前埋点分为两种方式,有码与无码埋点。有码埋点比较容易理解,即调用SDK的API,在代码中插入埋点的相关代码,实现用户行为采集。由于我们在开发项目的时候,埋点都是手动的,每次业务需求的改变都要到处埋点,而无码埋点,即不需要手动插入代码,只需要前期进行相关配置,SDK自动采集用户行为,极大程度避免了因需求变更、埋点错误等原因导致的重新埋点繁复工作。本文主要介绍无码埋点的技术实现。
本系列文章都是以有OC基础来写的,所以注释不会写太多,对基础不够了解的同学可能不太适合,另外本系列文章不是以教程式的形式来写,是记录学习过程的,所以不会有多少讲解 第一步:创建工程 A62A869C-
学习移动app开发,我们常常从讲解基本的控件开始,如UILabel、UISearchBar、UIButton、UITextField等等。在实现一个简单的ios 应用之前,我们首先来看ios开发中一些基本的概念。 视图控制器(View Controllers) 视图控制器是MVC(Modl-View-Controller)模式的逻辑部分。按照字面意思,这个控制器能够控制某个视图。 UIViewController 苹果极力推崇MVC这种开发模式,并且帮我们实现了一个叫做UIViewController的控制
最近, 苹果发布的 iOS 17.3 Beta 2 版本出现了令人意外的问题, 使包括 iPhone 15 Pro Max 在内的多款设备出现了循环重启的情况。目前,似乎唯一的解决办法是下载 IPSW 固件进行刷机。虽然 Beta 版本主要面向开发者,但出现这种严重的问题仍然让人意外。
拥有优秀的交互效果和手感,是很多 iOS 开发者长久以来坚守的原则。同样一段代码,在不同数据量级下的响应表现可能会有云泥之别。本文将通过一个优化列表视图的案例,展现在 SwiftUI 中查找问题、解决问题的思路,其中也会对 SwiftUI 视图的显式标识、@FetchRequest 的动态设置、List 的运作机制等内容有所涉及。本文的范例需运行在 iOS 15 及以上系统,技术特性也以 SwiftUI 3.0 为基础。
说实话,对于一个刚入门iOS两个月的新手而言,在拿到这个任务的时候整个人都是懵逼的,怎么做适配?哪些地方需要适配?该怎么做?一个个问题搞得头都大了。 首先,啥都不管,先在iPhone X上运行起来看看效果在说,运行之后出现的问题主要有如下几个: 屏幕尺寸还是6S上的尺寸大小,用 打印log确实如此 [[UIScreen mainScreen] bounds] 自定义的导航栏的返回按钮右移明显 UISearchBar的高度有变化,而且点击之后背景颜色和原先不一致 UITableview的header
在接触到CoreData时,感觉就是苹果封装的一个ORM。CoreData负责在Model的实体和sqllite建立关联,数据模型的实体类就相当于Java中的JavaBean, 而CoreData的功能和JavaEE中的Hibernate的功能类似,最基本是两者都有通过对实体的操作来实现对数据库的CURD操作。CoreData中的上下文(managedObjectContext)就相当于Hibernate中的session对象, CoreData中的save操作就和Hibernate中的commit,还
前几天发布了一篇iOS开发之多表视图滑动切换示例(仿"头条"客户端)的博客,之所以写这篇博客,是因为一位iOS初学者提了一个问题,简单的写了个demo做了个示范,让其在基础上做扩展和改进。被CocoaChina中iOS模块所收录实在出乎我的意料,链接地址(http://www.cocoachina.com/ios/20150706/12370.html),在CocoaChina上看了下面的评论,Demo的问题确实有,优化和改进的空间也是蛮大的。首先内存问题是必须考虑的,不能把这么多的TabalView实
IOS开发和Web开发一样,网络请求方式包括Get和Post方式。Get和Post两者有和特点和区别,在本篇博客中不做过多的论述,本篇的重点在于如何GET数据和POST数据。下面还会提到如何在我们的项目中使用CocoaPods, CocoaPods的安装和使用教程请参考链接http://code4app.com/article/cocoapods-install-usage。上面详细的介绍了CocoaPods的安装过程和如何通过CocoaPods引入第三方类库。在本篇博客中提到CocoaPods,是因为
// 滑动时按需加载, 防止卡顿 配合SDWebImage https://github.com/johnil/VVeboTableViewDemo
领取专属 10元无门槛券
手把手带您无忧上云