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

《iOS Human Interface Guidelines》——Collection View

一个集合视图: 可以包含一些可选的视图来视觉上区分条目的子集合或者提供装饰性的内容,比如自定义背景 支持布局间自定义的过渡动画(集合视图默认提供用户插入、移动或删除条目的动画) 支持额外的手势识别来执行自定义的动作...因为集合视图不强制使用严格的线性布局,所以它可以很好的显示不同大小的条目。 集合视图支持广泛的定制化,所以它可以有效地避免你创建激进的新设计带来的困惑。...你会想要集合视图对用户的任务有增益;而不会想要集合视图变成用户体验的焦点。下面的指南可以帮助你创建人们期待的集合视图。 不要在使用列表视图更好时使用集合视图。有时候用列表展现更利于人们查看和理解信息。...比如说,文本信息在滚动列表中会更利于人们简单和有效地查看与交互。 让人们选中条目变得简单。如果在你的集合视图中人们很难点中条目,他们就不太可能享受使用你的app。...对于所有用户可能想要点击的UI对象,确保集合视图中每个条目的最小目标区域为44*44 points。 如果你作出了动态的布局改变要使用警告。集合视图允许你在用户查看和交互条目的时候改变它们的布局。

37620

iOS 中的事件响应

系统通过hitTest方法沿视图层级树从底向上(从根视图开始),从后向前(从逻辑上更靠近屏幕的视图开始)进行遍历,最终返回一个适合响应触摸事件的 View,并在过程中为 UITouch 记录了 view...从上图中我们可以看出:Window 在将事件传递给最佳响应者的同时,也会将事件传递给相关的手势识别器并由手势识别器优先识别。...同时,从UIGestureRecognizer提供的view属性我们可以看出,一个手势可以添加给一个 View,如果添加给多个,只有最后一个 View 是可以识别手势的。...gestureRecognizerShouldBegin-函数调用 上图中我们还可以看到两个没有提到过的名词,一个是UITouchesEvent,另一个是UIGestureEnvironment。...var delaysContentTouches: Bool // 是否可以取消内容视图被触摸,默认为YES,如果设置为NO,则一旦开始跟踪事件,即使手指进行移动也不会取消已经传递给子视图的事件,即滚动视图不会再滚动

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

    Ios常用第三方框架(二)

    比如,之前要实现一个填写各种资料的列表,可能需要很多代码,现在只需要几行代码就可以实现。 UIScrollSlidingPages - 允许添加多视图控件,并且可以横向滚动。...HorizontalScrollCell - HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView中实现水片方向滚动视图。 。...Sapporo - swift 单元格模型驱动的集合视图管理器组件。又一个超实用的“轮子”。...ZWSlideViewController - ZWSlideViewController多页滑动视图控制器(类似新闻类门户APP),可以用最简单的继承方法使用,也可以不用继承,只用菜单或主视图页面,可实现丰富的定制...WHC_CollectionViewFramework.swift - 高仿支付宝可拖拽排序编辑动画效果cell的CollectionView集合视图。

    7.8K60

    干货 | 携程机票RN复杂交互实践

    相应的组件层级结构如下图所示: ? 从粗略的组件层级结构图可以看到,每一个航班卡片都有两种状态。因此相较于原本的往返分页模式,往返双栏需要支撑2倍的数据量,以及近4倍的组件数量。...,针对第一条所导致的问题用户通过手势左右切换的过程中,很容易触发列表的滚动导致手势中断,进而导致手势不跟手以及页面抖动。...然后在触控事件结束之后,释放重置,恢复列表滚动。采用该方案在真机实验中,使用setNativeProps可以直接操作,避免触发页面刷新影响性能,同时也解决了手势事件冲突的问题。...3.2.3 状态切换过程不能触发任何render,使用Native驱动动画 相较于JS线程上执行动画,在Native线程上效率更高,其主要区别可从下图中了解。...因此对于这类AnimatedView需要显示指定collapsable属性为false,保证其不会在视图中被移除。

    4.9K20

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

    1.1 核心原理         UIScrollView的核心理念是,它是一个可以在内容视图之上,调整自己原点位置的视图。它根据自身框架的大小,剪切视图中的内容,通常框架是和应用程序窗口一样大。...,从而影响滚动视图的滚动手势。         ...一个滚动视图也可以控制一个视图的缩放和平铺。当用户做捏合手势时,滚动视图调整偏移量和视图的比例。当手势结束的时候,管理视图内容显示的对象,就应该恰当的升级子视图的显示。...当手势在处理的过程中,滚动视图不能够给子视图,发送任何跟踪的调用。...,是用来在视图上画数字的,这样就可以看到视图重用的效果了,应该是从0开始到无穷多,但是实际上内存中就创建了6个视图。

    68430

    《iOS Human Interface Guidelines》——iOS App Anatomy

    Content Views包含app的详细内容,并且可以使用滚动、插入、删除和元件重布局的行为。 Controls。Controls执行动作或者展示信息。 Temporary views。...从编程上来说,一个UI元素是一类视图(view),因为它继承自UIView。一个视图知道怎么在屏幕上绘制它自己,也知道用户在它的边界内触摸了它。...控制器(比如按钮和滑动条)、内容视图(比如集合视图和表视图)和临时视图(比如警告框和选取器)都是视图的一种。 为了管理你app中的一系列视图,你最好使用视图控制器(View Controller)。...视图控制器可以协调视图的显示,执行用户交互下的功能,还可以管理从一个到另一个屏幕的过渡。比如说,“设置”使用了一个导航控制器来显示他的一系列视图。...这个例子展示了视图和视图控制器是如何结合着呈现一个iOS app的UI的。 虽然开发者认为按照视图和视图控制器,用户趋于将一个iOS app当成一堆屏幕的集合去体验。

    61330

    一文彻底搞懂js中的位置计算

    ,包括由于溢出导致的视图中不可见内容。...Element.scrollWidth 这也是一个元素内容宽度的只读属性,包含由于溢出导致视图中不可以见的内容。 原理上和scrollHeight是同理的,只不过这里是宽度而非高度。...此时,当你从右到左拖动滚动条时,scrollLeft会从0变为负数。 scrollLeft/Top在日常工作中是比较频繁使用关于操作滚动条的相关api,他们是一个可以设置的值。...判断当前元素是否存在滚动条 出现滚动条便意味着元素空间将大于其内容显示区域,根据这个现象便可以得到判断是否出现滚动条的规则。...计算元素是否出现在视口内 利用的还是元素距离视口的位置小于视口的大小。 注意即便变成了负值,那么也表示元素曾经出现过在屏幕中只是现在不显示了而已。

    3.9K10

    iOS 9人机界面指南(一)上篇:UI设计基础 - 腾讯ISUX

    在滚动年份视图时,用户可以即时看到今天的日期以及其他日历任务。 ? 当用户选择了某个月份,年份视图会局部放大该月份,过渡到月份视图。...你可以使用一个特征集合让你的视图和视图控制器响应显示环境的变化。 iOS定义了两个尺寸类别(size class),常规的(regular)和压缩的(compact)。...这部分内容给予了用户以反馈,使用户相信你的应用现在没问题。同时这也可以稳定用户情绪,让他们决定是否要采取纠正措施,继续使用应用,还是切换到另一个应用。 ?...在扁平信息架构的应用中,用户可以从首页目录直接切换到另一个,因为所有的分类都可以从主屏直接访问。音乐和App Store是两个使用扁平结构的好例子。 ? 译者注:以上为视频截图,完整视频可点击观看。...一个任务需要多层级的模态视图时,确保用户理解点击非最高层级下的完成按钮的结果。点击一个低层级视图上的完成按钮是完成这个视图中任务的一部分,还是整个任务。

    1.9K41

    Java Swing JTable

    JTable具有许多功能,可以自定义其呈现和编辑功能,但是为这些功能提供了默认设置,因此可以轻松设置简单的表。...请注意,如果希望在独立视图中(在JScrollPane外部)使用JTable并希望显示标头,则可以使用getTableHeader()获取它并单独显示它。...除了将数据从应用程序复制到DefaultTableModel之外,还可以将数据包装在TableModel接口的方法中,以便可以将数据直接传递到JTable,如上例所示。...因此,在编写TableModel时,不必侦听列重新排序事件,因为无论视图中发生什么,都将在其自身的坐标系中查询模型。...注意:该列是按表视图的显示顺序指定的,而不是按TableModel的列顺序指定的。这是一个重要的区别,因为当用户重新排列表中的列时,视图中给定索引处的列将发生变化。

    5.1K10

    最新iOS设计规范四|3大界面要素:视图(Views)

    如有需要,还可以添加更多手势来执行自定义操作。在集合中,插入、删除或重新排序项目,都可以启用动画,并且还支持自定义动画。 当标准行或网格布局足够时,避免创建新的设计。...页面元素通常会显示有多少页面,多少屏,或者多少数量的内容是当前可用及可见的。如果你在滚动视图中显示页面控制元素,则需要关闭滚动视图中的滚动条以免为用户带来困扰。...不要在一个滚动视图中放置另一个滚动视图。这样做带来的后果主要为会产生一个不可预期的用户界面,从而控制起来会变得非常困难。 同一时刻只显示一个滚动视图。...由于拆分视图提供了对多个层次结构的访问权限,因此人们可以通过在列之间拖放项目来将内容从应用程序的一个部分快速移动到另一部分。...文本视图可以是任何高度,并可以通过滚动的方式显示额外的内容。 默认情况下,文本视图中的文本是左对齐的,并使用黑色的系统字体。如果文本视图可编辑,则在视图内部点击时,屏幕下方会弹出键盘。 ?

    8.6K31

    Material Design —卡片(Cards)

    支持的手势 卡片手势应始终在卡片集合中实施。 支持的手势包括: 滑动手势(swipe gesture)可以在每张卡片上使用。限制视图内的轻扫手势,使其不会彼此重叠。...例如,可滑动的卡片不应该包含可滑动的图像,以便在滑动时只发生一次动作。 如果用户对集合内的卡进行分类很重要,则可以使用拾取并移动手势(pick-up-and-move gesture)。...但要考虑筛选或排序是否会更好地组织内容。 卡片集合的筛选和分类 卡片收藏可按照日期,文件大小,字母顺序或其他参数进行排序或筛选。 集合中的第一个项目位于左上角 顺序从左到右,从上到下进行 ?...从左到右,从上到下 滚动 卡片集合只能垂直滚动。 超过最大卡片高度的卡片内容会被省略,内部不会滚动,但可以扩展卡片。 一旦展开,卡片可能会超过视图的最大高度。...在这种情况下,卡片将随卡片集合一起滚动。 ? ? 左:卡片可留有展开入口    右:手机端不要在卡片内放置可滚动区域,会存在两条很难分开的滚动条 ?

    4.4K100

    SwiftUI 中掌握 ScrollView 的使用:滚动可见性

    前言我们的滚动 API 中又有一个重要的新增功能:滚动可见性。现在,你可以获取可见标识符列表,或者快速检查并监控 ScrollView 内视图的可见性状态。...同样,当视图从可见状态转换为不可见状态,即显示的视口部分少于 10% 时,也会运行该闭包。...整个示例分为两个部分:一个是显示带有多个文本视图的 ScrollView,另一个是显示一个视频播放器视图。...每个数字都显示在一个 Text 视图中,并有不同的背景颜色。...此外,在页面底部有一个视频播放器,当视频播放器出现在视口内时,它会自动播放,当其离开视口时,会自动暂停。总结今天,我们学习了如何跟踪 ScrollView 内特定视图的可见性,并监控可见标识符列表。

    25421

    iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

    集合视图: 可包含装饰视图,以从视觉上区分项的子集或者提供装饰性项目,例如自定义背景。 布局切换时支持自定义转场动画。(默认情况下,当用户导入、移动或者删除项的时候,会出现系统默认的动画效果。)...支持开发者额外定义手势识别来执行自定义操作。默认情况下,集合视图可以识别轻击(tap)某项以选中,和长按(touch-and-hold)某项进行编辑。...如果用户很难点中集合视图中的项,他们是不会愿意用你的应用的。跟所有用户可以点击的UI对象一样,请确保你的集合视图中每一个项的最小点击区域有44×44pt,尤其是在iPhone上。...可以应用在页模式(paging mode)中,在此模式下用户可以通过拖拽和轻击等手势来浏览一页的内容 使用滚动视图来允许用户在固定的空间内浏览大尺寸或大量的视图。 适当地支持缩放操作。...想要了解更多,请参考下文控件中的页面控件部分内容。 一般来说,一次只展示一个滚动视图。由于用户滚动屏幕时动作幅度经常都会很大,如果在一屏中同时存在不止一个滚动视图,他们很容易会碰到另一个。

    10.2K51

    如何处理手势冲突 | 手势导航连载 (三)

    问题 5: 该视图/控件大部分位于手势交互区域内吗? 紧接着问题 4,进一步确认该视图是否完全或大部分位于手势交互区域内。...如果您的视图放置在一个可滚动操作的容器 (如 RecyclerView) 中,那么请这么理解这个问题: 该视图是否完全或大部分位于手势交互区域中?...如果用户可以将视图滚动到手势交互区域之外,则应该视为没有交互冲突。 您也许已经注意到,在流程图中多图显示控件 (ViewPager) 在此处回答 "否"。...即使考虑加上了内外边距的情况,用户仍然可以正常通过滑动操作来翻看里面的图片。 问题 6: 该视图/控件是否和强制系统手势交互区域重叠? 最后一个问题询问该控件是否位于系统强制手势导航交互区域内。...解决方案 3: 使用手势区域排除 API 我们在上一篇文章中有提到 "应用可以从系统手势区域中切出一部分用来响应自己的手势交互"。这就是 Android 10 中新引入的手势区域排除 API。

    5K30

    在Swift中创建可缩放的图像视图

    medium.com/media/afad3… 在commonInit()中,我们将图像视图居中,并设置它的高度和宽度,而不是把它固定在父视图上。这样一来,滚动视图就会从图像视图中获得其内容大小。...设置滚动视图 我们需要实际设置我们的滚动视图,使其可缩放和可平移。这包括设置最小和最大的缩放级别,以及指定用户放大时使用的UIView(在我们的例子中,它将是图像视图)。...导航到属性检查器,你应该看到 "图像名称 "属性(这代表我们设置为@IBInspectable的imageName字符串!)。在这里输入你想嵌套在视图中的图片名称。 是时候建立和运行了!...让我们给我们的类添加另一个初始化器,这样我们就可以在代码中设置图像名称。 medium.com/media/074d4… 就这样了!现在我们可以像这样通过图片名称以编程方式初始化我们的视图了。...medium.com/media/46fac… 让我们来看看我们的类的整体情况。 medium.com/media/825ab… 双击手势(可选 可缩放视图的一个常见功能是双击放大和缩小的能力。

    5.7K20

    Flutter技术与实战(4)

    State 的生命周期可以分为 3 个阶段:创建(插入视图树)、更新(在视图树中存在)、销毁(从视图树中移除)。接下来,我们一起看看每一个阶段的具体流程。...列表滚动是否已经开始,或者是否已经停下来了?...ListView 的组件控制器则是 ScrollControler,我们可以通过它来获取视图的滚动信息,更新视图的滚动位置。...从夜间模式说起,定制不同的App主题 主题定制 主题,又叫皮肤、配色,一般由颜色、图片、字号、字体等组成,我们可以把它看做是视觉效果在不同场景下的可视资源,以及相应的配置集合。...像这样的手势识别发生在多个存在父子关系的视图时,手势竞技场会一并检查父视图和子视图的手势,并且通常最终会确认由子视图来响应事件。

    10.9K20
    领券