在上篇博客中,给大家演示了如何利用 UICollectionView 这个强大的控件去实现一个卡片轮播的效果,后来有网友联系我说:"他遇到一个问题,当他滚动的 item 宽度与屏幕宽度一致时,滚动效果是正常的...,但当把 item 宽度的值设置成小于屏幕宽度的时候,滚动就会出现遮挡的 bug, 这该如何解决呢!"...这个问题确实是存在的,因为在 UICollectionView 的属性中,有一个分页的属性:isPagingEnabled,当设置成 true 时,每次滚动的位移量等于屏幕的宽度;当不设置这个分页属性,...03.每次滚动停止都会调用上述的函数 func targetContentOffset(...), 在这个函数中有一个参数 proposedContentOffset 记录了滚动的目标位移坐标,通过这个坐标和记录的上次滚动的坐标可以判断出是向左滚动还是向右滚动...decelerationRate = .fast } // 这个方法的返回值,决定了 CollectionView 停止滚动时的偏移量 override func targetContentOffset
页面控件: 包含一系列圆点,圆点的个数代表了当前打开的视图数量(从左到右,这些圆点代表了视图打开的先后顺序) 默认情况下,使用不透明点来标识当前打开的视图,使用半透明点来表示所有其它视图 不支持用户访问不连续的视图...刷新控件: 看起来类似活动指示器 可以出现在标题中 默认状态下不可见,当用户在表格上缘往下拖拽以刷新内容时才出现 使用刷新控件,给用户提供一个一致的方式来了解一个表格或其他视图的内容更新,而不需要等待下一个自动更新...确保步进器所调整的值明显可见。步进器自身不展示任何数值,所以你需要保证让用户知道他们正在调整哪一个数值。 4.3.16 开关按钮 开关按钮展示了两个互斥的选项或状态。 ?...设计文案时可以遵循以下指南: 跟其它所有按钮一样,使用标题式大写,而且不需要标点符号 尽可能的使用与警告文案直接相关的动词或动词词组,如”取消(Cancel)”,”查看全部(View All)”,”回复...从视觉上看,模态视图好像原来就处于当前视图的下面,当前视图移开时,它便出现了。离开模态视图时,原先的父视图从左边滑回屏幕右边。
尽管这些文件称为“专用”,但它们仍然可见,并且可由设备上的其他应用访问,Android 并没有对它们提供任何特殊保护。...MenItem 就会显示 MenuItem: 浮出控件的菜单项 浮出控件 参考: Xamarin.Forms Shell 浮出控件 - Xamarin | Microsoft Docs 可以通过图标或从屏幕的一侧轻扫来访问它...FlyoutItems 集合中每个项的标题。...浮出项在浮出控件中默认可见。...15个不翻墙免费可商用矢量素材下载网站推荐!
Navigation drawer ---- 用法 Navigation drawer 提供对目的地和 app 功能的访问,如切换帐户。 它们可以永久在屏幕上显示,也可以通过导航菜单图标进行控制。...Dismissible drawer:如果用户可能将注意力集中在屏幕内容上,并且需要更加低频访问其导航目的地时,则可以使用 dismissible drawer。 ?...滚动 Bottom navigation drawers 一旦打开至全屏高度,就可以在内部滚动。 当最初打开到屏幕高度的50%时,在显示其他项目之前,必须将 drawer 拖到屏幕高度。...在滚动时,drawer 的标题变成了一个高的 top app bar,并具有很好的可供性。 ?...全屏时才能内部滚动 Content hierarchy(内容层级) 由于 bottom navigation drawer 内容项的数量一开始并不全部可见,因此 drawer 的内容应按以下顺序排列:
等)就能够响应(如ToolBar、TabLayout)控件被标记的滚动事件。...,那么当LinearLayout滚动时便可触发ToolBar中的layout_scrollFlags效果 即往上滑动隐藏ToolBar,下滑出现ToolBar,而不会隐藏TabLayout,因为TabLayout...layout_scrollFlags说明 value comment scroll 所有想滚动出屏幕的view都需要设置这个flag, 没有设置这个flag的view将被固定在屏幕顶部。...enterAlways 这个flag让任意向下的滚动都会导致该view变为可见,启用快速“返回模式”。...– (Tab宽度不固定,同时可以横向滚动),还实现了所有Tab居中显示。
如果返回 NO,则在到达 API 数据末尾时,不会再不会发出任何请求。 因为你希望无限滚动,那就返回 YES,以确保总是请求新的数据。...也许你正在处理一个充满屏幕 image ,并且总是希望在接下来的几张图片加载时处于等待状态,所以用户很少看到占位符。 当你再这样的体系下工作时,你很快就会意识到有很多问题要考虑。...假设你有一个pageViewController,里面每个 viewController 都带有一个 collectionView。现在,你就需要考虑如何在两个方向上动态加载内容。...Visible Range(可见范围):此时,node 至少有一个像素在屏幕上。...假设你有一个竖直滚动的tableView,在其中某些Cell包含了水平滚动的 collectionView。
在工具栏中提供应用全局的任务或者模式分段控件是不恰当的,因为工具栏中的所有操作都应当是针对当前屏幕和视图的。...当浮出层可见的时候,想要改变它的尺寸的话请务必谨慎。当你要在浮出层里展示同样信息的精简或拓展视图时,你可能需要改变浮出层的大小。...当用户在视图中拖拽内容,内容随之滚动;当用户轻扫屏幕时,内容将快速滚动——直到用户再次触摸屏幕或内容已经到达底部时停止。...一般来说,一次只展示一个滚动视图。由于用户滚动屏幕时动作幅度经常都会很大,如果在一屏中同时存在不止一个滚动视图,他们很容易会碰到另一个。...Value 2的布局中,文本和副标题中间的垂直间距会让用户专注于副标题的第一 个单词。 ? 重要 以上四种单元格样式均支持添加表格视图元素,如勾选或展开标志。
例如像 App Store 这样的: Sticky Section Header Sticky Section Header 是用追加视图实现的一种效果,具体表现为当 UICollectionView 滚动的时候...,只要当前 section 的 headerView 向上滚动到最顶部的时候,它就会与屏幕顶部粘住不会隐藏,具体效果如下: 这效果第一眼看上去是不是感觉有点复杂,这效果起码得撸个百来行代码才能实现这效果啊...在接下来的内容中,你将会学到以下知识点: 1.如何在 UICollectionView 中创建 Decoration View2.自定义布局属性,计算 section 的背景图位置和大小3.实现 UICollectionView...计算背景图布局属性 为了实现这个书架分层的样式,我们需要为每个 section 设置一个背景图,如: 但是由于每个 section 的坐标位置是不固定的,于是我们就需要在准备阶段将所有 section...但当我真正的去整理它的一些技术点时,我发现它实在是太灵活了,以前觉得追加视图,装饰视图这些东西很简单,几行代码的事情,但事实上,当你想要去实现一些高度自定义的界面的时候,你才会认识到自己的不足,你并没有对这些知识有更深层次的认知
1.TableView不显示没内容的Cell 2.百分号的转换 3.禁止手机睡眠 4.跳进app权限设置 5.collectionView的内容小于其宽高的时候是不能滚动的,设置可以滚动: 6.设置navigationBar...、代码方式调整屏幕亮度 43、float数据取整四舍五入 44、让正在滑动的scrollView停止滚动(不是禁止,而是暂时停止滚动) 45、使用xib设置UIView的边框、圆角 46、将一个xib添加到另外一个...sharedApplication] openURL:url]; } 测试注意:新项目测试,需要请求一下位置权限或者通知权限,才可以跳进自己的app设置里面(必须在info.plist 中设置私有属性的访问权限...) 你的应用要提前至少申请了某一个权限,如(通知,定位等)。...5.collectionView的内容小于其宽高的时候是不能滚动的,设置可以滚动: collectionView.alwaysBounceHorizontal = YES; collectionView.alwaysBounceVertical
如该侧面图所示(图借用自作者 Leo): image 整体实现用的控件还是 UICollectionView。...我们知道在 UICollectionView 的属性中,有一个分页的属性:isPagingEnabled,当设置成 true 时,每次滚动的位移量等于它自身 frame 的宽度;当不设置这个分页属性,它的默认值是...image 有人要问那是不是 UICollectionView 这个控件就只能按照屏幕的大小来分页呢!答案当然是否定的。我们还可以用自定义的方式来实现分页滚动。...0 每次滚动停止都会调用上述的函数 func targetContentOffset(...), 在这个函数中有一个参数 proposedContentOffset 记录了滚动的目标位移坐标,通过这个坐标和记录的上次滚动的坐标可以判断出是向左滚动还是向右滚动...decelerationRate = .fast } // 这个方法的返回值,决定了 CollectionView 停止滚动时的偏移量 override func targetContentOffset
,需要隐藏弹出视图) 1.2展示的时候,动画从右上角往左下脚延伸;隐藏的时候,动画从左下脚往右上角收回 (展示的时候,从上往下,即x,y 慢慢变大) 1.3 内部视图采用collectionView进行布局...,y 慢慢变大) 展开效果的实现原理: 1 点击展示商品信息的cell 上面的弹出按钮时,阴影alpha由0到1,弹窗的scale由0到1(这里使用CABasicAnimation) 2 点击空白处(...,需要隐藏弹出视图) 1.2展示的时候,动画从右上角往左下脚延伸;隐藏的时候,动画从左下脚往右上角收回 (展示的时候,从上往下,即x,y 慢慢变大) 1.3 内部视图采用collectionView进行布局...3.2 具体实现的代码 请访问文章:https://kunnan.blog.csdn.net/article/details/106406160 疑问解答,请关注公众号:iOS逆向 see also 竖向弹出菜单视图...【点击导航条标题,下拉选择分类】iOS导航条的标题按钮的左侧是分类名称,右边的下拉图标 https://blog.csdn.net/z929118967/article/details/104315227
·最小化警报 Alerts会破坏用户体验,只能用于重要的情形,如确认购买和破坏性行为(如删除)或通知人们出现了问题。 Alerts次数罕见有助于确保人们认真对待他们。...优化alerts的文本,使其无需滚动即可在任何方向被读取。 ---- Alert 的标题与信息 ·使用简短的、描述性的、多字的Alert标题 人们在屏幕上阅读的文字越少越好。...·如果您一定要提供信息,请写下简短且完整的句子 尽量保持消息足够短,最好控制在一两行,以防止滚动。使用句式大小写和适当的标点符号。...·避免解释警报按钮 如果您的提示文本和按钮标题清晰,则无需解释按钮的功能。在极少数情况下,您必须提供指导,使用单词“tap”,在引用按钮时保留大写,并且不要将按钮标题放在引号中。...·允许人们通过退出到主屏幕取消提醒 在alert可见时允许访问主屏幕退出app。这也应该产生与点击取消按钮相同的效果——也就是说,在不执行任何操作的情况下alert被解除。
需求模仿腾讯课堂视频播放详情页面,效果如图: 1外层滚动控件到顶部,内层控制滚动 2内层滚动到顶部,外层控制滚动 835108-20170331111709149-156183149.gif 835108...false,则表示不拦截该系列事件,该系列事件全部交给子View来处理。...2了解那些触摸事件 down(落下事件如果被消耗即返回true,那么后续move->...move->up事件不会转发) move--手指屏幕移动事件(可以根据down的x,y值与move事件中判断手势是否向上或者向下滑动...一开始的思路是切换tab页面的话其他tab页面Listview控件可见状态会不可见或者消失,完全不是这么回事,后来发现其实View的视图状态一直是可见的,不过那时候技术老大提醒说点击不同的tab时listview...所在的屏幕位置发生变化通过x值可以区分也就是要坐标系中的横坐标,判断当前view“屏幕可见”一定是0屏幕宽度),后面直接想用输出打印View的位置坐标,发现各种相似的方法,
介绍 UIView 会占用屏幕上一个矩形的空间。 主要处理两件事:画出矩形控件,并处理其中的事件。 UIView 是层级结构,UIView 只有一个父 View,但可以有多个子 View。...内容可滚动。...数据联动 在某一列滚动的时候,重新设置联动列的显示数据,然后进行刷新操作。...UIScrollView、UIPageControl UIScrollView 滚动控件 三个重要属性 contentSize:UIScrollView 滚动的范围。...适用于基本不需要动态修改、布局固定的页面,如个人中心、设置等。 微信“发现”界面案例。
我经常会用到以下库: HTTP 层:使用 Alamofire; 图像处理库:使用 Alamofire image 或 Kingfisher; 自动布局辅助库,如 Snapkit; UI 工具,如 HUD...、masonry CollectionView layouts、颜色可渐变库之类的; 更重要的是,保持 Pod 的更新,以避免使用低版本产生的错误。...在使用 Objective-C 时,我总是不情愿地使用继承。当然这并不总是错误的,正确的使用子类也不会出错。但是 Swift 扩展可以轻松地将简单方法集成到通用类上,而无需做任何复杂的事情。...其次,尽可能选择在屏幕上方输入。用户可能被迫伸出手来操作它,但是最好实现 UIScrollView 并处理滚动操作以避免键盘覆盖输入内容。 9.使用通知 通知中心是在组件之间分发消息的好工具。...此外,在 UI 元素上使用 tag 来标识它们,而不是使用其标题或其它内容来区分。 结论 我没有提到所有基本的 OOP 原则。显然,您必须以正确的方式实现类,封装,抽象和设计模式。
万维网联盟 Web 可访问性推进组织制定了 Web 内容可访问性指南,即 WCAG,以便残疾人士(包括视觉、听觉、身体、语音、认知、语言、学习和神经系统残疾)可以更方便的访问 Web 内容。...对于由交互触发的运动动画,如当鼠标悬停或滚动时移动的图片,要满足 AAA 级标准,就必须提供一种方法来禁用这些动画。...就可访问性而言,图片基本类型分为 3 类: 装饰性:不增加页面内容的信息 信息性:传达一个简单的概念或信息,可以用一个简短的短语或句子来表达 功能性:用于触发动作,而不是传递信息 装饰性图片 按照...文本大小和间距 为了满足 AA 级标准,文本应可以调整到 200% 而不损失内容或功能,这意味着你仍然可以看到所有的文本,即使是必须水平滚动才能看到。...即使你从来没有写过一行代码或登录 CMS,作为内容创造者的你所采取的步骤也可以影响可访问性。因为当你使网站具有可访问性时,就会使每个人都可以访问它。
允许用户通过退出APP到主屏幕来取消警示框。当警示框出现时,退出到主屏幕可以退出APP。这个操作产生与点击取消按钮的效果是相同的。即警示框被取消,且不执行任何操作。...如果用户想要不按顺序访问页面,你可以自定义控件来实现此功能。 七、浮层/弹出视图(Popovers) 浮层通常是当用户点击屏幕上某个内容的控制点或区域时,在其上方出现的瞬态视图。...页面元素通常会显示有多少页面,多少屏,或者多少数量的内容是当前可用及可见的。如果你在滚动视图中显示页面控制元素,则需要关闭滚动视图中的滚动条以免为用户带来困扰。...用户经常会在滚动时使用非常大幅度的动作,如此便会非常难以避免在同一屏幕中对相邻的滚动视图进行交互操作。...所以如果你需要在一个屏幕中放置两个滚动视图时,尽量考虑允许它们在不同的方向进行滚动,如此可能对其相互间的影响是最小的。
,需要隐藏弹出视图) 1.2展示的时候,动画从右上角往左下脚延伸;隐藏的时候,动画从左下脚往右上角收回 (展示的时候,从上往下,即x,y 慢慢变大) 1.3 内部视图采用collectionView进行布局...,y 慢慢变大) 展开效果的实现原理: 1 点击展示商品信息的cell 上面的弹出按钮时,阴影alpha由0到1,弹窗的scale由0到1(这里使用CABasicAnimation) 2 点击空白处(...,需要隐藏弹出视图) 1.2展示的时候,动画从右上角往左下脚延伸;隐藏的时候,动画从左下脚往右上角收回 (展示的时候,从上往下,即x,y 慢慢变大) 1.3 内部视图采用collectionView进行布局...在这里插入图片描述 完整代码和demo请访问文章:https://kunnan.blog.csdn.net/article/details/106406160 疑问解答,请关注公众号:iOS逆向 3.4...【点击导航条标题,下拉选择分类】iOS导航条的标题按钮的左侧是分类名称,右边的下拉图标 https://blog.csdn.net/z929118967/article/details/104315227
, UIViewController, UIPresentationController 和 UIView)都实现了UITraitEnvironment 这个接口,可以通过这个接口来做一些控件显示,屏幕适配等一些工作...如果你是使用编程的方式来创建集合视图控制器,那么将会自动创建一个已经配置好的collection view, 而这个collection view可以通过collectionView来进行访问。...当你初始化视图控制器时,你可以使用initWithCollectionViewLayout:方法来指定集合视图想要使用的布局方式。...使用Storyboard创建一个CollectionViewController (1) 从控件库中拖拽出Collection View Controller ,你可以在Cell上添加一个ImageView...今天就是一个Ready的过程,下篇博客将会基于今天这个工程介绍其他的关于UICollectionView的东西,如UICollectionViewLayout等,来逐渐领略UICollectionViewController
UIWindow, UIViewController, UIPresentationController 和 UIView)都实现了UITraitEnvironment这个接口,可以通过这个接口来做一些控件显示,屏幕适配等一些工作...如果你是使用编程的方式来创建集合视图控制器,那么将会自动创建一个已经配置好的collection view, 而这个collection view可以通过collectionView来进行访问。...当你初始化视图控制器时,你可以使用initWithCollectionViewLayout:方法来指定集合视图想要使用的布局方式。...使用Storyboard创建一个CollectionViewController (1) 从控件库中拖拽出Collection View Controller ,你可以在Cell上添加一个ImageView...今天就是一个Ready的过程,下篇博客将会基于今天这个工程介绍其他的关于UICollectionView的东西,如UICollectionViewLayout等,来逐渐领略UICollectionViewController
领取专属 10元无门槛券
手把手带您无忧上云