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

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

自适应高度 SheetQ:如何在 iOS16 中呈现与动态内容高度相匹配的 Sheet?我想在 presentationDetents 中使用视图高度。A:谢谢你的问题。...估计苹果的工程师比较忙,没有认真考虑这个问题。在 iOS 16 中,通过 presentationDetents 同 GeometryReader 的配合,可以创建与内容高度一致的 Sheet。...惰性容器中的视图,会根据其是否出现在可视区域而反复调用 onAppear onDisapper。 onAppear onDisappear 并非视图存续期起点终点。...下划线会让看起来有点诡异,访问底层存储并没有错。官方文档主要试图指出人们最常见的用法,这样他们就不会一开始就试图直接初始化他们的属性包装器。...( 例如,账户余额 10 美元 ),一些开发人员没有意识到这个说明在 VoiceOver 中无法被读取。

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

iOS小技能:适配安全区域距离(safeAreaInsets)

引言 应用场景1:自定义导航栏内容,导航栏显示公告标题 应用场景2:自定义视图底部工具栏 应用场景3: 适配上拉加载更多控件 _vcView.tableView.mj_footer.ignoredScrollViewContentInsetBottom...但是如果一个view没有视图层次结构中或未在屏幕上显示, 则safeAreaInsets0; 1.1 问题 视图底部工具栏显示到安全区域之外 1.2 判断安全区域距离 #define isIphoneX...; NSLog(@"导航栏高度:%f",navHeight); //获取tabBar的高度 //1.在tabBarController中使用(你的继承自UITabBarController的VC) CGFloat...自定义视图底部工具栏显示到安全区域之外 如果有安全区域距离,则视图距离底部的高度进行相应调整 [_vcView mas_makeConstraints:^(MASConstraintMaker...offset(- 0); make.top.equalTo(weakSelf.view).offset(0); if(isHasSafeAreaInsets()){// 避免没有上拉的时候加载更多控件的文案也显示出来了

3.3K30

SheetKit——SwiftUI模态视图扩展库

但在实际使用中,情况并不如预期。主要因为SwiftUI中重要的视图展示模式:NavigationView、Sheet等都没有迅捷、简便的重置能力。...•新的半高模态视图在WWDC 2021中,苹果大家带来了期待已久的半高模态视图。或许推出的比较仓促,这种很受欢迎的交互方式并没有提供SwiftUI版本,支持UIKit。...13 Pro Max - 2021-09-16 at 16.15.08 模态视图高度变化提醒 当bottomSheet在不同高度变化时,有两种方式可以获得提醒。...guard let obj = notification.object else {return} print(obj)} 当采用方法2时,如果需要展示多层bottomSheet,请不同层次视图定义不同名称的...只有将模态视图的背景设置透明,毛玻璃效果才能显现出来。

2.8K20

最新iOS设计规范三|3大界面要素:栏(Bars)

iOS 13及更高版本中,可以通过删除导航栏的阴影来隐藏导航栏的底部边框(当滑动内容区域时,边框会自动重新出现)。无边框样式在大标题导航栏中效果很好,因为增强了标题内容之间的联系感。...如果你认为没有到当前屏幕的完整路径,因此导致用户迷路,那么可以调整APP的层次结构,使其更加扁平。 给带有标题的按钮留出足够的空间。...例如,“邮件”使用更简洁的术语(例如“标记”“草稿”)从每个邮箱的标题中省略了“消息”一词。 不要在侧边栏中显示超过两个层次层次结构。...当数据层次结构深于两个级别时,请在拆分视图界面的补充列中使用列表视图。 四、状态栏(Status Bars) 状态栏出现在屏幕的上边缘,并显示有关设备当前状态的有用信息,例如时间,移动电话电池电量。...尽管“更多”选项卡可以显示更多的选项卡,但它需要额外的点击才能显示出来,并且可能会浪费空间。包括基本选项卡,并使用信息层次结构所需的最少数量的选项卡。

9.8K10

Cocoa编程中视图控制器与视图类详解

iPhone编程规则是:一个窗口,多个视图。UIView是iPhone屏幕上很多控件的基础类。...每个iPhone用户界面都是由显示在UIWindow(这其实也是个特殊的UIView)内的众多UIView及其专门化子类构建的。...从语法上 说,UIViewController是视图控制器的父类。视图控制器类是没有可视化表示的抽象类,只有管理的视图才提供可视画布。记住:1....)栏标题(title)、用于显示标题的视图(titleView),以及用于从当前视图向后导航的Back按钮(backBarButtonItem)隐藏后退按钮(hidesBackButton)。...1.作用: •创建和管理视图。 •管理视图显示的数据。 •设备方向变化,调整视图大小以适应屏幕。 •负责视图模型之间的数据及请示的传递。 2.

5K50

关于刘海打理这种事儿,美团点评的iOS工程师早就有经验了,不信你看!

图2.4 iPhone X 的显示区域 Status Bar iPhone X 上的 StatusBar 高度比之前的 iPhone 高一些,也就是说,我们如果写死20pt高度的 frame 布局...屏幕底部 因为没有了 Home 键,iPhone X 的底部是预留给系统功能的一个区域 - Home Indicator,这部分的高度是34pt。 ?...② 搜索页面输入框的位置发生了偏移,这是因为 iOS 11 的导航栏的视图层级结构发生了变化, iPhone X 的并无直接关系。iOS 11 导航栏的视图层级关系如下: ?...导航栏的视图层级结构发生变化而导致 UI(titleView、UIBarButtonItem) 问题。...(iPhone 6s iOS 11 上依然是旧的结构,是因为现在 AppStore 上的包依然是用 iOS 10 的 SDK 打出来的)。

2.1K70

最新iOS设计规范十|5大拓展程序(Extensions)

iOS是运行于iPhone、iPadiPod touch设备上、最常用的移动操作系统之一。作为互联网应用的开发者、产品经理、体验设计师,都应当理解并熟悉平台的设计规范。...iOS设计规范系列共10篇。本文是第10篇,介绍拓展程序(Extensions)。 扩展程序(Extensions) ?...加载文件提供程序扩展时,其界面将显示在包含导航栏的模式视图中。 ? 用户打开或导入文件时,显示特定于上下文的文档信息。当用户打开或导入文档时,显示适合当前上下文的文档。...人们在导出移动文档时选择目的地。除非您的应用将文档存储在单个目录中,否则用户应导航到目录层次结构中的特定目标。考虑提供一种添加新子目录的方法。 不要提供自定义导航栏。...紧凑的视图与键盘的高度大致相同。确保用户可以看到他们正在编辑的内容,允许在扩展视图中输入文本。

3.1K10

最新iOS设计规范七|10大视觉规范(Visual Design)

换句话说,iPhone应用程序必须在每个iPhone屏幕尺寸上运行,而iPad应用程序必须在每个iPad屏幕尺寸上运行。 ? ?...视图可能包含尺寸类型的任意组合: 常规宽度,常规高度 紧凑宽度,紧凑高度 常规宽度,紧凑高度 紧凑宽度,常规高度 iOS会根据内容区域的尺寸类型动态地进行布局调整。...人们倾向于接受充满艺术的东西,动画没有意义或似乎违反物理法则时,他们会感到迷失方向。例如:如果有人通过从屏幕顶部向下滑动来显示视图,他们应该也能够通过向上滑动来消除视图。 使用一致的动画。...iOS定义了两组背景色系统,并对每个系统进行分组,每个系统都包含主要、次要和三级变体,这些变体有助于你传达信息的层级结构。通常,在有分组表视图时使用背景色分组集;否则,使用背景色系统集。...使用这两组背景颜色,通常使用变体以下列方式指示层次结构: 主要的,用于整体的 次要的,用于在整体视图中对内容或元素进行分组 第三层,用于将第二层元素中的内容或元素分组 对于前景内容,iOS定义以下颜色

7.9K30

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

UINavigationController与UITabBarController的组合使用 http://sinye.iteye.com/blog/2093281 (Good)【IOS开发】UITabBarController...导航条设置半透明         将NavigationBar设置透明(将指定视图控制器进行透明处理),步骤如下:     1.在视图控制器的头文件中实现UINavigationControllerDelegate...    if (viewController == self) {         //背景设置黑色         self.navigationController.navigationBar.tintColor...,标题返回按钮文字颜色 http://blog.csdn.net/mad1989/article/details/41516743 IOS自定义导航栏题目返回按钮标题 http://blog.csdn.net...tid-180226-page-1.html (good)iOS 7 UITabBar自定义选中图片显示默认蓝色的Bug http://thierry-xing.iteye.com/blog/2171602

31920

Human Interface Guidelines —— Tab Bars

Tab Bars是半透明的,可以具有背景色调,在所有屏幕方向上保持相同的高度,并且在显示键盘时隐藏。 Tab Bars可能包含任意数量的tabs,但可见tabs的数量因装置大小方向而异。...·通常,使用tab bar来组织app级别的信息 选项卡栏是一种平滑信息层次结构的方式,也能够同时对多个同等信息类别或模式进行访问。...尽管“更多”tab可以显示额外的tabs,这需要额外的taps,并且空间使用效率较差。包含基本tabs,并使用信息层次结构所需的最少tabs。...例如,如果iOS设备上没有歌曲,则音乐app中的我的音乐tab将介绍如何下载歌曲。...标签栏工具栏永远不会同时出现在同一个视图中。

1.3K150

IOS开发基础系列】Storyboard专题

对于 iPhone 应用,一次可以看一个场景,iPad 应用可以一次显示多个场景,例如使用splitview 的“主-细”窗口,或者用popovercontroller 弹出内容。...运行程序,什么都没有改变。不要奇怪,我们还没有提供数据源,因此表视图中不会显示任何行。 2.3.3 创建PlayersViewController         加一个新的 File 到项目中。...调整宽度81,高度无所谓。设置的Mode Center(在属性面板的 View 下面)以便当我们将图片放入时它不会被拉伸。         ...3.1.3 在故事板中进行布局设计时,如果有导航栏、Tab栏,必须也要把高度预留出来 iPhone iPad各种控件默认高度 http://blog.csdn.net/chengyakun11/article...5 参考链接 IOS编程教程(十):使用StoryBoard来建立导航控制器视图 http://www.cnblogs.com/haichao/archive/2012/11/23/2784144.

69530

iOS-屏幕适配实现(AutoLayout)

对于有层次关系的两个 view 之间的约束关系,添加到层次较高的父 view 上 自身的宽高等约束,添加到自身视图上 特殊控件的约束 UILabel默认内容的显示方式是垂直居中的...必须要保证UILabel的text属性有内容,否则UILabel显示不出来(这是初学者经常犯的错误)。...原因在于,UILabel是根据内容自动调整宽度高度,如果没有内容,那么宽度高度就是0,导致UILabel无法显示。...默认为当前设置方向最近的一个VIew,且没有覆盖遮挡的视图 注意:上下左右的间距控件的宽度、高度配合使用,尽量不要冲突; 例如:375的屏幕宽度,你不能距离左边200,距离右边200,还要控件宽度100...、竖屏iPad -(wC hC):适用于iPhone的横屏上(除了iPhone11iPhone Plus等) -(wR hC):适用于iPhone 11iPhone Plus的横屏等 示例:

30710

iOS接入开屏广告教程 : 以腾讯优量汇为案例

4.12.5及以上版本 本文重点是拉取最新SDK库、iOS14的idfa适配以及iOS13的modal样式适配 I 、 SDK部署 https://developers.adnet.qq.com/doc...开屏全屏广告需使得显示区域其高度与设备高度一致,即为开屏全屏广告。开发者可通过以下接口配合使用提供媒体logo,用以随开屏广告展示。...showFullScreenAdInWindow:(UIWindow *)window withLogoImage:(UIImage *)logoImage skipView:(UIView *)skipView; 开屏半屏广告的显示区域其高度一定要大于设备高度的...在这里插入图片描述 IV iOS13适配present半屏的问题 由于本文的广告类型是开屏全屏方式的,所以使用分类将广告控制器GDTSplashImageViewController的modalPresentationStyle...class]]) { // 根视图UITabBarController currentVC = [self getCurrentVCFrom:[(UITabBarController

2.5K20

iOS14开发-入门知识

Cocoa Touch 层应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,负责用户在 iOS 设备上的触摸交互操作以及一些其他的关键功能。 创建第一个iOS项目 ?...UIView与UIViewController 初步印象 iOS 开发中,一个界面就是一个 UIViewController(视图控制器),界面上显示的内容就是 UIView(视图)。...UIView 的层次关系(平级与包含)。 UIView常见属性 backgroudColor:背景色。 frame:相对父视图的坐标大小。...宽度或者高度其实为0。 位置不对(比如是个负数或者超大的数,已经超出屏幕)。 hidden == true。 alpha <= 0.01。 没有设置背景色、没有设置内容。...exchangeSubviewAtIndex:将2个位置的视图互换。 演示UIView与UIViewController Storyboard 注意左侧面板的视图层次结构

2.8K40

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

因为集合没有强制执行严格的线性格式,所以特别适合显示大小不同的项。 一般来说,集合非常展示基于图像的内容。可以选择性地呈现背景其他装饰性的视图,用以区分项目的子集。 ? 集合支持交互性动画。...当用户点击取消按钮时才取消当前的任务。 在屏幕适当的位置显示浮层。浮层的箭头应尽可能直接指向触发的元素。因为浮层不能在屏幕上拖动,所以浮层不能覆盖屏幕上太多内容。也不能覆盖触发的元素。...分列视图对于浏览内容层次结构的多个级别很有用,例如通过横穿收件箱列表邮件,来查看每个邮件的内容。 ?...由于拆分视图提供了对多个层次结构的访问权限,因此人们可以通过在列之间拖放项目来将内容从应用程序的一个部分快速移动到另一部分。...文本视图可以是任何高度,并可以通过滚动的方式显示额外的内容。 默认情况下,文本视图中的文本是左对齐的,并使用黑色的系统字体。如果文本视图可编辑,则在视图内部点击时,屏幕下方会弹出键盘。 ?

8.3K31

用这些 iOS 技巧让你的 APP 性能更佳

译者注:文段中没有 Xcode,下文中提及 Xcode 新建项目 为了让你的应用感觉更快,你可以将启动页设计与将向用户显示的第一个页面(视图控制器)类似。...用户退出应用程序时 iOS 截取的应用程序截图(查看大图) iOS 使用这些屏幕截图来给人一种假象,即应用程序仍在运行或仍在显示此特定视图,而应用程序可能已被后台终止或重新启动,此时仍显示相同的屏幕截图...标识符是通过视图层次结构来分组的,从根视图控制器到当前活动视图控制器。...了解更多有关状态恢复的知识: 状态的保存恢复 UI 保存过程 UI 恢复过程 01 尽可能减少透明视图的使用 不透明视图是指没有透明度的视图,意味着放在后面的任何 UI 元素不可见。...如果视图具有透明度(即 alpha 低于 1.0),那么 iOS 将需要做些额外的工作来混合视图层次结构中不同的视图层以计算出哪些内容需要展示。

3.2K30
领券