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

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

千万千万,避免状态栏后面叠加会分散注意力的内容。尤其,你不能让用户觉得轻击状态栏之后可以获取内容或激活你的应用的控件。 隐藏状态栏时请慎重。由于状态栏透明的,通常情况下不需要隐藏它。...确保你的容器内容控制器横屏与竖屏模式都可用。很重要的一点,你的容器视图控制器无论横屏还是竖屏,体验都应该是一致的。 一般来说,避免太过花哨的转场动画。...页模式滚动视图中,可以考虑使用页面控件(page control)。当你想要展示分页、分屏或者分块的内容,可以使用页面控件来让用户知道当前内容一共有多少块,以及他们当前浏览的第几个。...文本视图一个可定义为任何高度的矩形 当内容太多超出视图的边框时,文本视图支持滚动 支持自定义字体、颜色和对齐方式(默认情况下,文本视图会以左对齐的黑色系统字体显示) 可以支持用户编辑,当用户轻击文本视图内部时...虽然你可以使用属性字符串将不同的字体、字色和对齐方式串联在同一个文本视图内,但保持文本的可读性必不可少的。

10.1K51

iOS Programming – 触摸事件处理(2)

首先触摸的对象是视图,而视图的类UIView继承了UIRespnder类,但是要对事件作出处理,还需要重写UIResponder类定义的事件处理函数。...而这几个方法被调用时,正好对应了UITouch类phase属性的4个枚举值。 上面的四个事件方法,开发过程并不要求全部实现,可以根据需要重写特定的方法。...不管时一个手指还是多个手指,轻击操作都会使每个触摸对象的tapCount加1,由于上面的例子不需要知道具体触摸对象的位置或时间等,因此可以直接调用touches的anyObject方法来获取任意一个触摸对象然后判断其...轻击操作很容易引起歧义,比如当用户点了一次之后,并不知道用户想单击还是只是双击的一部分,或者点了两次之后并不知道用户想双击还是继续点击。为了解决这个问题,一般可以使用“延迟调用”函数。...UIColor blueColor] afterDelay:2];         self.view.backgroundColor = [UIColor redColor];     } } 上面代码表示第一次轻击之后

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

touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event使用

首先触摸的对象是视图,而视图的类UIView继承了UIRespnder类,但是要对事件作出处理,还需要重写UIResponder类定义的事件处理函数。...而这几个方法被调用时,正好对应了UITouch类phase属性的4个枚举值。 上面的四个事件方法,开发过程并不要求全部实现,可以根据需要重写特定的方法。...不管时一个手指还是多个手指,轻击操作都会使每个触摸对象的tapCount加1,由于上面的例子不需要知道具体触摸对象的位置或时间等,因此可以直接调用touches的anyObject方法来获取任意一个触摸对象然后判断其...轻击操作很容易引起歧义,比如当用户点了一次之后,并不知道用户想单击还是只是双击的一部分,或者点了两次之后并不知道用户想双击还是继续点击。...2 ]; self.view.backgroundColor = [UIColor redColor]; } } 上面代码表示第一次轻击之后

50420

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

页面控件不显示视图如何相互关联的,而且不表明哪个视图对应于每个点,因此它不能帮助用户导航到特定的视图。 避免显示太多点。超过10个点就很难让用户一目了然,而超过20个视图序列访问起来非常耗时。...API提示: 想要了解如何在代码定义文本框,以及文本框中支持图片和按钮,可以参考UITextField....举个例子,你可以文本框的左侧或者右侧加入自定义图形,或者加入系统按钮,书签按钮等。一般来说,文本框的左侧用于表述文本框的含义,而右侧用于展示附加的功能,书签。...合适的话,文本框右侧加入清除按钮。轻击清除按钮变可清空当前框内输入的全部内容,无论你原本打算在这个按钮上面展示什么其它图片。 如果可以帮助用户理解的话,可以文本框中加入提示文字。...不要让模态视图覆盖浮出层之上。除了警告框,没有任何元素应该覆盖弹出层上面。

13.2K30

Ask Apple 2022 与 SwiftUI 有关的问答(下)

更复杂的 UI ,由于视图的更新速度过快,性能( 至少 macOS 上 )迅速下降。A:有不同的策略。ObservableObject 使视图视图层次结构的失效( 引发重新计算 )的单元。...软弃用Q:最近,我注意到新的 @ViewBuilder 函数以前的版本不可用的,弃用信息提示我使用新的方法取代老方法,这是 SwiftUI 的 API 设计缺陷还是我错过了什么?...macOS APIQ:对于运行 Monterey 的 Mac,能否如何在 SwiftUI 实现下面需求的建议:打开一个窗口该窗口中初始化数据找到所有打开的窗口确定一个窗口是否打开从不在该窗口的视图中关闭一个窗口...,但原因并非来自实际的视图内容,而是由于 sheet、toolbar 等修饰器的代码造成的。...所以更想知道你需要这个速度值有什么特定的用途。可以尝试获取位置改变的同时记录时间变化来计算速度。不过如果涉及到用户交互,建议衡量一下用户对速度的敏感程度和交互效果本身,是否可以用更便捷的方式实现。

14.7K30

macOS 开发基础教程视频 - 理解bounds本质

macOS 开发基础教程视频课程的NSView章节,解释了关于视图的frame和bounds的坐标参照系统,限于授课经验与课程时间,感觉对NSView的bounds属性,表述的不够深入,希望通过本文帮助观看课程的同学加深对...父控件,我需要在你的坐标系统的占据这个frame.origin位置,尺寸frame.size的区域),这样以来,父控件布局的时候,就会知道如何摆放它内部的所有控件了。...这样bounds就成为了我们对NSView的观景窗~ 如果现在你已经理解了bounds,那么对于ScrollView的如何实现滑动展示其内部视图内容,就不会觉得奇怪了。...UI界面 customView添加随意几个box视图,并设置颜色(为了观看效果)。...添加自定义类CustomScrollView.swift文件(继承自NSView)来管理customView控件 Storyboard设置customView的类属性为:CustomScrollView

1K40

零基础入门 23: UGUI ScrollView

那么如何在Unity里制作一个ScrollView呢?有如下两种方式。 今天会使用这俩种方式来为大家制作一个滚动视图。...【方式一】 早期的UGUI版本,Unity并没有一个现成的滚动视图控件可以提供给大家使用,而是提供了一个名为ScrollRect的组件,配合Mask组件来完成ScrollView的创建和使用。...父节点创建完毕以后,我们重新命个名,然后为他增加一个空的Gameobject作为滚动视图内容的父节点,并且选择一些布局方式,即Layout组件。...下一步,我修改滚动视图到合适的大小,调试大小的时候大家可以把mask标记打开,方便调整,然后调试好了以后再关闭。 ? 然后我们来修改一下滚动视图内容的父节点的大小。...因为我们要创建的垂直的,所以ScrollRect组件上把水平滚动去掉。 ? 此时我们运行项目,来查看一下效果。顺便在运行,我又复制了几个图片,来穿插显示,这样更能体现出我们滚动视图的显示。 ?

3K20

iOS界面布局的核心以及TangramKit介绍

前言 TangramKitiOS系统下用Swift编写的第三方界面布局框架。...布局的核心 我们知道界面开发我们直接操作的对象是视图视图可以理解为一个具有特定功能的矩形区块,因此所谓的布局的本质就是为视图指定某个具体的尺寸以及指定其排列屏幕上的位置。...我们知道视图一个矩形的区域,里面由无数个点构成。假如我们以视图左上角作为坐标原点的话,那么视图内的任何一点都可以用水平方向的坐标值和垂直方向的坐标值来表示。...我们知道左手坐标系里面,一个视图内的左上角方位的坐标值就是原点的坐标值,默认情况下原点的坐标值(0,0)。但是这个定义不是一成不变的,也就是说原点的坐标值不一定是(0,0)。...下面的列表展示了位置不同的布局描述的间距还是边距: 位置/布局 边距 间距 tg_left/tg_right LV/FR/R/TH/S LH/FO/FL/P/TV tg_top/tg_bottom

2.1K30

探讨 SwiftUI 的几个关键属性包装器

@State @State SwiftUI 中最常用的属性包装器之一,主要用于视图内部管理私有数据。它特别适合存储值类型数据,字符串、整数、枚举或结构体实例。...@State 用于管理视图的私有状态。 它主要用于存储值类型数据(与视图的生命周期一致)。 典型应用场景 当需要因视图内的数据变化而触发视图更新时,@State 理想的选择。...复杂的视图层级,逐级传递 @Binding 可能导致数据流难以追踪,此时应考虑使用其他状态管理方法。 确保 @Binding 的数据源可信的,错误的数据源可能导致数据不一致或应用崩溃。...一个视图层次,同一个类型的环境对象只有一个实例有效。... Observation 框架的背景下,@State 和 @Environment 成为了最主要的属性包装器。无论值类型还是 @Observable 实例,都可以通过这两种包装器引入视图

17310

ARKit介绍

AR - 使用相机创建虚拟对象放置物理世界的错觉。 我们知道增强现实并不是新的,但由于Apple的新框架,AR现在正受到很多关注。...然后我UITapGestureRecognizer视图中添加了一个以识别用于添加节点的轻击手势。...增强测量 第一次实现之后,我注意到测量不准确,因为您不能保证节点A和节点B同一表面。在那种情况下,我需要平面检测功能。...我已经知道如何将节点放置摄像机所在的位置,但我如何获得距离最近的平面的距离。答案:hitTest(_:types:)。...此方法摄像机图像搜索视图坐标中指定点的有效曲面,并返回一个列表,其中命中测试结果的排序距离最近(距离摄像机的距离)。

2.3K20

iOS 开发面试通关指南:67 个必知问题!

这个问题只是为了了解你过去独自工作,一个较大的团队工作,远程协作,还是仅与本地的开发者合作。 4.你知识储备的来源是什么?平时会看一些博客或者播客(podcast)内容吗?举几个例子吧。...随便说点什么都行——如果你对两种语言都有经验,你就会知道每种语言身上你最喜欢或最想念的是什么。 21.你听说过method swizzling吗?是什么意思?Swift可以用吗?...28.你是否会将struct或class用在MVVM视图模型里?视图模型不一定总是一个class。 29.如何管理代码的依赖(dependency)?你使用依赖注入框架/工具,还是手动进行?...33.如何在Swift解析JSON?如何在Swift解析XML?JSON的那一题很简单。如果你知道的话,也顺便讨论一下你的密钥解码策略。...祝你面试能有好运气——不管你面试者还是面试官。

1.1K20

Ask Apple 2022 与 SwiftUI 有关的问答(上)

锁定 Charts 纵轴刻度Q:我有一个 Swift 图表,通过监听拖动事件实现在拖动过程显示一个 RuleMark。拖动过程,Y 轴的刻度会变大。...场景的内容视图定义了场景创建的窗口中的视图内容,但场景本身定义了应用程序的整体结构。SwiftUI 4.0 ,WindowGroup 获得了相当大的更新,真正具备了开发 macOS 应用的能力。...对于非惰性视图 LazyVStack ),一旦 hosting controller 的视图被初始化,onAppear 将被调用。...除了使用习惯,还应考虑偏移后的视图是否需要会对周边的视图产生影响( 布局层面 )。详情请阅读 SwiftUI 实现视图居中的若干种方法[14] 。...我是否可以认为,如果水平尺寸类紧凑( compact )的,它就是折叠的?还是有一个更可靠的判断方法?A:紧凑( compact )确实对应于一个折叠的导航分割视图

12.2K20

OpenGLES(一)- GLKit以及常见API

GLKController GLKView的容器,继承自UIViewController。用于绘制视图内容的管理与呈现。 ios12以后苹果大大废弃了GLKit,使用了Metal。...,将3D图形通过观察者、口转为2D图形。...,指定视图是否响应视图重绘(-drawRect)的消息 BOOL enableSetNeedsDisplay; // ⽴即重绘视图内容 - display // 绘制视图内容并将其作为新图像对象返回...//该回调准备、开始绘制 - (void)glkView:(GLKView *)view drawInRect:(CGRect)rect; GLKViewController管理渲染循环的视图控制器...:(GLKViewController *)controller; //视图控制器调用视图以及更新视图内容的速率 NSInteger preferredFramesPerSecond; //视图控制器调用视图以及更新其内容的实际速率

1.2K30

懒加载 React 长页面 - 动态渲染组件

背景 长页面在前端开发是非常常见的。例如下图中的电商首页,楼层数据来自运营人员在后台的配置,楼层数量不固定的,同时每个楼层可能会依赖更多翻页数据。...Loading 组件是否视图内 如图 1 所示,当 loading 组件的位置滚动到视图中时,并且如果此时还有未渲染的组件,这时便是渲染下一屏的时机。...判断组件是否视图内有两种方式,一种调用调用Element.getBoundingClientRect\(\)[1]方法以获取 loading 元素的边界信息,进行判断,另一种调用Intersection...scrollRenderHandler]); 方法 2:Intersection Observer 使用 react-intersection-observer 的 api 判断 loading 元素是否视图内...具体:shouldComponentUpdate(nextProps, nextState)而在函数组件,我们可以使用 React.memo ,它的使用方法非常简单,如下所示。

3.4K20

第45期:一条 SQL 语句优化的基本思路

比如使用表关联代替子查询、分组聚合条件上推、特定条件下用内连接来替换连接、视图上推到基表等等一系列优化措施。...一般来讲,我们拿到一条“不是很优化”、“烂的”、“慢的” 等 SQL 语句(至于怎么拿到这条语句,不在本篇讨论范围),应该按照以下几个步骤来逐步分析:一、定位该SQL 语句涉及到的表结构,确认磁盘表还是视图...二、如果有些表视图,需要考虑以下几点:该视图内部的算法有两种,一种临时表(TEMPTABLE)、另外一种合并(MERGE )。可以针对这两种算法来分别测试视图整体性能哪个较优化。...三、到了这一步,如果多张表关联,此处检查表关联键:表关联键为主键和键,也即两表用来关联的字段一张表唯一并且另一张表被引用,这时需要补充额外的过滤条件来减少扫描记录数。...后续我将逐步介绍各种优化方法以及MySQL里如何付诸于实践。---关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!

69030

Jekyll-Admin-Mac-模板处理

我们已经拿到了数据,但是我们究竟如何才能让外接知道数据呢。那就用到了回调, Swift我们叫做闭包。...但是 self这个关键字我们根本不知道哪一个类,我们最后查询可以利用下面代码获取。 let anyClass = type(of:self) ?...然后,可以以比显式显示视图内容更有效的方式来操纵缓存的内容。AppKit会自动创建底层图层对象(使用该方法)并处理视图内容的缓存。如果该方法返回,则不应直接与底层对象进行交互。...相反,使用此类的方法对视图及其图层进行任何更改。如果返回,则在视图方法修改图层合适的(并且适当)。...为了防止子视图将其内容放大到此视图的图层,请将子视图的属性值显式设置为。

6.7K30

如何让 SwiftUI 的列表变得更加灵活

前言 List 可能 SwiftUI 附带的内置视图中最常用的一种,它使我们能够在任何 Apple 平台上呈现“类似于表格视图”的用户界面。...为了演示这种情况,我们 List 嵌套一个 ForEach (因为 SwiftUI 的,列表变化一版都是由 ForEach 触发的,而不是由 List 触发的)。...不仅如此,下拉刷新由 async/await 提供支持,不需要增加任何额外的代码就可以让系统知道什么时候重新加载结束。...SwiftUI 中使用,请查看昨天的这篇文章[1],不要错过真正重要的“ Swift 认识 async/await[2]”WWDC 会议。...转载声明 本文已经公众号 Swift社区 发布,需要转载请联系小编申请开白。未经同意禁止私自转载。

4.8K41

Swift 周报 第四十一期

前言 本期 Swift 编辑组整理周报的第四十一期,每个模块已初步成型。各位读者如果有好的提议,欢迎文末留言。...如果它们只是文档列出,即使只是附录或脚注,我会感到更高兴。 请注意,在这种情况下,顺序也很重要。我需要知道完整的布局,以便将其映射到寄存器等等。...许多情况下,你可能会发现你终端开发的程序崩溃了,但你无法复现问题。没有适当的崩溃日志,这可能会让你非常沮丧,你知道你的程序有一个 bug ,但你不知道问题出在哪里,也不知道如何复现它。...SwiftUI 的 visual effects[11] 摘要: 这篇博客介绍了 SwiftUI WWDC2023 引入的一种叫做 visualEffect 的新视图修饰符。...闭包提供了两个参数:第一个参数附加到视图的效果集合的初始状态, EmptyVisualEffect 类型的实例;第二个参数 GeometryProxy 类型的实例,包含可能需要的视图所有布局信息,

20540

iOS开发常用之测试调试、动态更新

UIViewController-Swizzled - 把你进入的每一个控制器的类名打出来,如果看一些特别复杂的项目的时候直接运行demo就可以知道执行次序了。...快速 - 用于Swift的单元测试(也可用于Objective-C),与Xcode整合在一起。...ViewMonitor - 能够帮助iOS开发者们精确的测量视图,可直接在调试应用查看具体的某个视图的坐标,宽高等参数。...======== 动态更新 waxPatch - 大众点评的屠毅敏同学基础蜡的基础上写了waxPatch,这个工具的主要原理通过lua来针对objc的方法进行替换,由于lua本身解释型语言,可以通过动态下载得到...不可多得地学习WatchKit的示例式教程(1.如何创建一个简单的交互式计数器; 2.如何从手表上控制iOS应用程序; 3.如何在WatchKit应用程序和iOS应用之间共享数据; 4,如何创建一个拥有不同背景色的数字时钟

3.4K20

WWV 2018年十大必看视频

有最新API的视频,ARKit 2,Core ML 2,Create ML和Siri Shortcuts; 通过新的Dark Mode支持和改进的源代码编辑覆盖Xcode 10; 然后Swift 4.2...示例应用程序,Soup Chef,Apple演示了如何对快捷方式进行分类,然后添加一些参数,字符串,数字,人物或位置。一旦捐赠给Siri,您可以通过说出您提供的短语来触发快捷方式。...使用View Debugger的检查器,您可以查找元素并查看当前值或确定它们由父级还是超级视图设置的。您可以判断视图中的元素是否支持暗模式的暗变体,甚至辅助功能。...特别是,新的自定义Playgrounds显示转换器允许您在实时REPL类似的结果内联视图中显示您自己的自定义值。他还强调了如何在项目中支持自己的框架。...此外,查找阶段脚本执行 - 如果每个构建都存在这些,“最近”中所示,那么您很可能遇到配置问题。 您的代码,尝试减少复杂的表达式。某些情况下,将代码移动到协议,以便编译器不必搜索整个文件。

2.7K20
领券