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

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

设备屏幕尺寸和方向 iOS设备具有各种屏幕尺寸,可以纵向或横向使用。在iPhone X和iPad Pro等边对边设备中,显示屏的圆角与设备的整体尺寸非常匹配。...你可以将APP设置为动态适应各种特征,包括: 不同的设备屏幕尺寸,分辨率和色域(sRGB / P3) 不同的设备方向(纵向/横向) 拆分视图 iPad上的多任务处理模式 动态类型文本大小更改 基于区域设置启用的国际化功能...缩进和对齐还可以表明内容之间的关系。 如果可以的话,同时支持纵向和横向。用户更喜欢在不同的方向使用APP,因此最好是你能能够满足用户这种期望。 做好更改文本大小的准备。...避免不必要的布局更改。当有人旋转设备时,整个布局无需更改。例如,如果您的应用在纵向模式下显示图像网格,则不必在横向模式下显示与列表相同的图像。相反,它可能只是调整网格的尺寸。...最重要的是,让你的APP看起来像一个iOS应用程序。确保它直观、易于导航、易于使用,并专注于内容。即使你的APP在其他平台也可以使用,也要避免通过过分关注一致的品牌却削弱了你的设计。

8.1K30

Android屏幕适配很难嘛?其实也就那么回事

没有看过的朋友可以先看看了解一下再回来,可以更好的理解。.../ 360; 这样做的话宽度适配的比例是没有任何问的,但是我在想,如果需要以高度来做适配(也就是内容刚好纵向填充全屏)的话,是不是改成这样就可以了: final float targetDensity...Android的开原性导致了Android设备的尺寸的碎片化太严重,而通过查看手机的尺寸参数会发现,如果用这四个手机来测试的话,宽度可以直接整除,而高度不可以(并且我手边的测试机的宽度也可以整除,如果有宽度没法整除的手机呢...的也会覆盖掉(原因还没有搞清楚...), * 权衡利弊之后就在onDestroy这个生命周期里面重新初始化了一下方向(因为用高度作为适配基准的页面 * 少之又少,这样可以最大程度的减少对程序功能性的影响...,我修改掉的是Activity中的值(activityDensity),但是返回再点击其他页面之后发现其他页面的适配方向也被修改掉了,于是乎权衡利弊之后我就用了这个相对来说影响最小的办法:在需要修改适配方向的

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

    一种非常简单的Android屏幕适配方案

    没有看过的朋友可以先看看了解一下再回来,可以更好的理解。...Android的开原性导致了Android设备的尺寸的碎片化太严重,而通过查看测试机的尺寸参数会发现,如果用这四个手机来测试的话,宽度可以直接整除,而高度不可以(并且我手边的测试机的宽度也可以整除,如果有宽度没法整除的手机呢...,也不需要做保留两位小数处理了(发现问题的朋友们,原谅我学艺不精。。。...但是上述方法只能保证一个方向,那我就让它可以自由的切换适配的基准方向不就好了。...image.png 如果只是适配一个方向的话,只设置这两句就可以了(我在utils里面设置了默认按照宽度适配,可以根据自己的需求修改默认的适配方向,见下图) ?

    66540

    Flutter 凉了吗?

    与此同时,苹果也于2019年 WWDC 为开发者们带来了一套可横跨苹果几大操作系统的 UI 框架 SwiftUI。 那么在此趋势下,类似 Flutter 的这种工具真的是新一代移动开发的未来吗?...但最近,我了解了Flutter,并决定在移动应用程序开发方向上再试上一试。我当即就爱上了它,因为它使开发多平台应用程序变得贼有趣。自从了解它以来,我已经使用它创建了一个app和一个库。...每个小部件的文本样式必须手动地一个一个设置,但这仍然很简单: 为了进一步提高效率,Flutter可以热重新加载应用程序,因此您无需在每次更改UI时重新打开它。...6 最后的一些思考 有了Flutter,就有了几乎无穷无尽的可能性,因此即使是体量巨大的App也可以轻松地被创建出来。...如果你是做移动App开发的并且尚未尝试过Flutter,我强烈建议你试一下,因为我相信你也会爱上它的。使用Flutter几个月之后,我认为可以说这是移动开发的未来。

    3.1K20

    如何避免数据迁移陷阱

    希望实现数据基础设施的现代化并将Hadoop迁移到云平台中吗?以下是组织在数据迁移之前需要问的五个问题: 1.迁移的数据量是多少?...组织有几种方法可以将少量数据传输到云平台,特别是在数据是静态并且不变的情况下。其面临的风险在于认为同样的方法也适用于大量数据,尤其是当这些数据在迁移到云中时发生变化时。...即使有专用的网络通道也需要考虑到这一点,因为组织通常不会在影响其他用户和进程的情况下使用所有带宽进行数据迁移。 组织需要确保有适当的机制来确保充分控制数据,以免对业务造成不良影响。...为了避免将锁定在单点解决方案中,组织需要能够跨多个端点管理实时数据。在这种情况下需要一个解决方案,该解决方案可以跨多个环境复制更改,并解决任何潜在的数据更改冲突(最好在冲突发生之前解决)。...数据引力通常还会驱动应用程序之间的依赖关系。 例如,可能有一个应用程序将另一个应用程序的输出作为输入,进而可以向更下游的其他应用程序提供数据。

    86920

    常见问题:并发

    例如,在锁定集合以进行写入时(使用排它锁(X)模式),必须在意向排它锁(IX)模式下锁定相应的数据库锁和全局锁。...单个数据库可以同时锁定在IS(意向共享锁)和IX(意向排它锁)模式,但是(X)不能与任何其他模式共存,并且共享锁(S)只能与意图共享(IS)锁共存。 锁是公平的,读取和写入按顺序排队。...然而,MongoDB实际上将授予所有IS和S模式,一旦它们全部完成,它将授予X,即使新的IS或S请求在此期间已进入排队。...在某些情况下,读写操作可以让渡(yield)它们持有的锁。 长时间运行的读写操作(例如查询,更新和删除)在许多条件下都会进行让渡(yield)。...此信息仅用于概述我们的一般产品方向,不应依赖于做出购买决定,也不是承诺,或为法律义务提供任何材料,代码或功能。 MongoDB提供了什么样的隔离保证?

    1.6K30

    中高级Java开发面试题,最难的几道Java面试题,看看你跪在第几个

    由于字符串是不可变的,所以不能更改字符串的内容,因为任何更改都会产生新的字符串,而如果你使用char[],你就可以将所有元素设置为空白或零。因此,在字符数组中存储密码可以明显降低窃取密码的安全风险。...6.如何使用双重检查锁定在 Java 中创建线程安全的单例? ---- 这个 Java 问题也常被问: 什么是线程安全的单例,你怎么创建它。...如果感兴趣, 你可以了解下构建者设计模式和装饰器设计模式。 1) 枚举单例易于书写 这是迄今为止最大的优势,如果你在Java 5之前一直在编写单例, 你知道, 即使双检查锁定, 你仍可以有多个实例。...另一种方法是在运行应用程序时实际锁定时找到它, 尝试采取线程转储,在 Linux 中,你可以通过kill -3命令执行此操作, 这将打印应用程序日志文件中所有线程的状态, 并且你可以看到哪个线程被锁定在哪个线程对象上...10.你能用Java覆盖静态方法吗?如果我在子类中创建相同的方法是编译时错误?

    1.6K10

    Ask Apple 2022 中与 Core Data 有关的问答 (下)

    主程序与扩展程序数据同步Q:我有一个主应用程序和一个扩展程序,它们都读取相同的 Core Data 数据库。但是,当我在主应用程序中进行更改时,我的扩展程序在重新启动之前不会看到更改。...在某些情况下,即使属性的原始内容为纯文本,也可以通过为其生成标准化版本( 忽略大小写以及变音符号的版本 )以提高检索效率。...私有上下文Q:如何配置 Core Data Stack,以便在后台保存更改时,用户可以继续使用应用程序。...对于私有上下文,即使使用 performAndWait 通常也不会对 UI 造成影响。...当整数空间用完时,将在任何一个方向上跨出一个对象,并均匀地重新分配这些对象。很遗憾,有序关系无法在开启 Core Data 云同步的状态下使用,在此种情况下,提问者当前的做法应该是正确的选择。

    3.3K20

    新晋开源顶流模型 Llama 3.1 被开发者赞爆!小扎拿苹果“开刀”反对闭源厂商:AI 不要“苹果税”!

    kache 还提到,“扎克伯格对苹果的看法确实很正确:他们树敌多少,还能继续生存下去吗?”马斯克也跟帖称:“说实话,我也是这么想的。”...开发人员可以完全自定义自己的应用程序并在任意环境下运行,包括本地、云端,甚至是本地运行在笔记本电脑之上——所有这些都无需与 Meta 共享数据。...我们需要掌控自己的命运,而不愿被锁定在封闭供应商身上。许多组织不想将业务命脉锁定在自己无法运行和控制在模型之上。他们不愿封闭模型提供商随意更改自己的模型、变更其使用条款,甚至完全停止为他们提供服务。...他们也不希望被锁定在拥有模型专有权的特定云环境当中。开源使得涵盖兼容工具链的广泛商业生态成为可能,用户可以轻松在这些工具链之间往来切换。 我们需要保护自己的数据。...国家力量支持下的间谍活动相当强大,如今的大模型也可以被轻松装进大容量 U 盘当中,而且多数科技企业的运营方式并不像保密机构那么严谨。

    16010

    架构师必知必会,聊聊后端架构设计的演进

    hello,大家好,我是张张,「架构精进之路」公号作者。 你想成为一名架构师,对吗?别对我撒谎,我知道你想成为架构师。即使你不想,你还是想成为一名更好的开发者。...那是多么幸福的日子啊,你只需要了解 GoF 设计模式,就能自称为架构师。 然而,随着计算机变得更加强大,用户的需求也增加,导致应用程序的复杂性不断增加。...然而,他也提到低层模块可以调用上层模块,前提是不违反依赖关系的方向规则。这可以通过回调、观察者模式等方式实现。 他还注意到控制器具有过多的逻辑,于是将其移至另一个称为应用层的层级中。...每个组件都可以单独部署。如果更改数据访问,只需重新构建数据访问部分。如果只更改 UI,只需更改 UI 部分。 由于可以单独部署模块,这意味着它们可以单独开发。 只有优点。...只不过这次,Palermo 从 Evans 的模式中添加了应用层,该层也可以包含一些端口。 这种架构面临的最大挑战,也是导致混淆的原因,是模块之间的依赖关系。

    74830

    【区块链必学】来自一位比特币狂热数学家对闪电网络的6大透彻解析

    只要两方合作,通道可以无限期存在。 2. 通道是双向的。支付可以双向发出,一笔交易的发出可以自动补充给接收的一方。即使有限资金锁定在渠道中,仍有无限量的交易笔数可以顺利通过。...大家一致认为,能够定义比特币未来方向的,是它的去中心化。 问题是,比特币在很多方面可能会变得中心化。在网络节点、挖矿制造商、挖矿运营、协议开发和更改的决策、交易、支付处理器等等领域都可能呈现出中心化。...闪电网络中心也可能会呈现出中心化特点。 我想强调的是有很多折衷方法。一般情况下,从一个方面改善去中心化往往带来另一方面的不足。我们要努力的方向是,打造一个理想的中间地带,让所有的功能都得到充分满足。...即使我们假定任意两个节点之间只有一个中间点,在选择路径遇到问题时,我们仍有很大的灵活性,因为X和Y的选择更多元。 不用赘述的是,不管是在3步走还是在4步走模式下,无需所有节点都是完全连接在一起的。...由于网络不是完全随机的,而是在实际需要的基础上建立起来的,闪电网络的性能数据比随机图表模型下预测的更好。 用户通过不同路径连接。在这些路径想要去到的方向上,有足够的容量吗?

    65940

    原理解析Service Mesh与ESB、API管理与消息代理的关系

    最近我谈到了微服务模式的发展①,以及像service proxies like Envoy from Lyft②的文章,阐述服务代理如何将弹性、服务发现、路由、指标收集等职责推到应用程序下层。...我看到的很多例子使用的模式基本上是通过消息系统进行请求或回复(RPC)。 ? 这间接帮助解决了应用程序网络功能中的一些问题。负载均衡、服务发现、背压、重试等工作都被委托给了消息代理。...网络传输的流量方向,南北一般指代纵向的不同层级间的传输流量,比如内外网,东西一般指代同一级别的传输流量,比如虚拟机之间),还包括“东西方”流量交互的问题)。...我想是可以的,但会存在不清晰的边界。在service mesh中,我们说应用程序应该能意识到应用程序网络功能,但是不应该在应用程序代码中被实现。...如何使应用程序更清楚地意识到应用程序网络功能或service mesh层正在做什么事情,有待进一步说明。我认为在这种情况下,很多库或框架会被创建出来。

    1.6K50

    如何在Ubuntu 14.04上使用双因素身份验证保护您的WordPress帐户登录

    电子邮件 离线,通过移动应用程序 虽然银行和交易账户等高风险系统使用SMS交付进行敏感交易,但我们将使用离线模式生成OTP。...除了输入用户名和密码登录外,您还需要输入移动应用程序生成的密码。这意味着即使您的WordPress凭据遭到破坏,黑客也无法在没有您的手机的情况下登录WordPress。...没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。 使用Nginx重新安装WordPress,这也需要读者安装LEMP。...这与我们激活双因素身份验证并连接FreeOTP应用程序时所做的相同,如步骤3所示。 或者,您可以禁用双因素身份验证,直到找到您的设备。选择适当的选项后,请确保通过单击“ 更新配置文件”按钮保存更改。...现在,即使攻击者获得了您的帐户凭据,他们也无法在没有OTP代码的情况下登录您的帐户!当您找不到手机时,灾难恢复技术很有用。 WordPress管理员应该采取哪些其他安全措施?

    1.8K00

    万物皆可“小程序”——迟到的iOS 14之猜想

    “Clips”允许开发人员向用户提供应用程序中交互式的动态内容(在用户尚未安装该应用程序的情况下)。...另外,基于AI的视频人脸识别、表情识别、肢体识别、背景分割、虚拟形象驱动、虚拟主播等也是目前非常重要的方向,可以提供很多面向未来的体验和玩法。...理论上,只要能不受限地访问网络,观看、互动问题都不大,功能取舍更多是在资源、布局限制下的产品设计问题,如果连登录、支付都利用上的话,功能支持和体验可以更完整快捷。...事实上,即使是Chrome也很难同时支持网络应用、iOS和Android,而我们最不需要的就是Android和iOS也同样加速脱离Web标准。...不会有人想让一家公司控制Web标准,这将意味着这家公司可以在该标准损害其商业模式的情况下对其进行修改甚至是删除。

    80630

    如何规范移动应用交互设计?UIUX设计师须知的11个小技巧

    系统键盘则应该尝试根据上下文进行自动更改,并显示保存的密码。...最大限度地利用手势优势进行设计,不要通过打字实现滑动,轻敲等;当然,也不要忘记使用其他硬件优势,你可以通过这些硬件来减少许多表单字段。...因为它可以让用户信任你的应用程序,同时他们也极有可能发展成你的老用户。 5-1.png https://dribbble.com/hugodesgayets №6....注意应用程序的屏幕方向 对于移动应用程序的设计,我们总是在竖屏模式下进行设计。设计师应该同时检查屏幕横向和纵向的适应效果,不要忘记在横屏模式下测试你的应用程序。...90%的时间里用户都试图使用他们已经习惯的系统模式的导航,用户使用这种导航可以使你的应用程序更加智能,但前提必须是你导航足够直观,用户不会因为搜索导航太久而卸载你的应用程序。

    1.3K90

    ChatGPT 能否解决集体 Kubernetes 故障诊断吗?

    随着 AI 驱动的 DevOps 平台的出现,更多知识被锁定在专有模型内。 那以后呢?没有人再去贡献这些知识,这些模型还能发展吗?...例如,如果一个刚接触 Kubernetes 的开发人员在运行 kubectl get pods 时遇到部署应用程序的问题,因为他们看到了 CrashLoopBackOff 状态,那么他们可以查询 AI...我更担心的是,在 Causely 主导的未来,我们宝贵的故障诊断知识会被锁定在这些仪表盘和赋能它们的专有 AI 模型内。...我们可以做的最好的事情是继续在线发布关于我们在 Kubernetes 和其他领域的故障诊断工作的惊人内容,例如“关于故障诊断 Kubernetes 部署的可视化指南”;创建教育游戏化的应用程序,如 SadServers...我们也可以超越技术解决方案,例如讨论如何管理和支持同事应对压力大的故障诊断场景,或者在组织范围内就什么是可观测性达成一致。

    14710

    何时(不)使用Java抽象类

    当然,即使在没有这种支持的语言中,也可以简单地定义一个目的是被子类实现的类,并定义空方法或抛出异常的方法,作为子类重写的“抽象”方法。...我们也可以使用与字符串操作相关的方法创建一个类,另一个使用与我们的应用程序当前经过身份验证的用户相关的方法等。 另请注意,此方法也非常适合组合而不是继承的原则。 继承和抽象类是一个强大的构造。...实际上,我发现抽象类的大多数典型用法都可以被认为是反模式,抽象类有一些很好的用法。 模板方法 话虽如此,让我们看一下模板方法 设计模式描述的最佳用途之一 。...我发现模板方法模式是一个鲜为人知的 - 但更有用 - 的设计模式。 您可以阅读有关模式如何在许多地方工作的信息。...经验法则 我喜欢将软件工程模式简化为简单的经验法则。当然,每条规则都有例外。但是,它能帮助我快速判断使用特定的设计是否是朝着正确的方向发展。 事实证明,在考虑使用抽象类时,有一个很好的经验法则。

    1.2K30

    我们可以脱离它们吗?

    脱离了这些框架,我们可以解决这些问题吗?我们来看看今天的文章: 最近,我对将框架与原生的 JavaScript 进行对比非常感兴趣。...我的目标不是要抨击这些框架,而是想要了解使用框架的成本和收益,确定是否存在某些替代方案,并看看即使我们决定使用框架,是不是可以从中学到一些什么。...并且浏览器在大多数情况下,修复问题或发布解决方法都是非常迅速的。另外,本文中的大部分模式都基于成熟的 Web 平台 API,我们也并不是一直都要考虑升级。 自己实现一个框架?...在 intent 方向上,UI 会通知模型用户打算进行的更改。 在 observe 方向上,模型会通知 UI 对模型所做的更改以及需要向用户显示的更改。...它包含了应用程序所需的所有元素,以合理的层次结构排列。由于隐藏的 Input 元素,你已经可以很好地了解文档稍后可能发生的更改。

    8K30

    为什么我使用 GraphQL 而放弃 REST API?

    事实上,下面提到的大多数注意事项都是由于缺乏标准造成的,但是我想强调一下在实践中经常看到的情况。 在一个有经验的团队中,你可以避免这些问题,但是你难道不希望一些问题已经在软件方面得到解决吗?...在客户端或服务器上的所有验证逻辑,你确定都是正确的吗?理想情况下,你希望它在两边都得到验证,对吧?维护所有这些自定义代码非常有趣。或者保持 API JSON 模式是最新的。...你需要同时在服务器和客户端上实现每个端点 还有大量的库可以在 ORM 或直接数据库自省的帮助下自动生成 REST 端点。即使使用了这样的库,它们通常也不是很灵活或可扩展的。...对于所有讨论过的问题,我倾向于认为,在 CRUD 应用程序中,有一种标准方式来生成和使用 API 会非常棒。通用的工具和模式、集成测试和文档基础设施将有助于解决技术和组织问题。...只要 GraphQL 模式中有任何更改,你就可以在 GraphQL 浏览器中看到它,就像嵌入式 API 文档。

    2.3K30

    在 Spring 中使用 @Transactional 要避的坑

    常见陷阱 有效地使用 @Transactional 可以确保 Spring 应用程序中的数据一致性,但是几个常见的错误可能会导致意外的行为和问题。...• 即使已经存在事务,也使用 REQUIRES_NEW 它来创建新事务,以确保隔离。 • 根据你是否想要参与现有事务或隔离方法的操作来选择传播级别。...• 对于优先使用短期事务的场景,请考虑使用乐观锁定(乐观锁定在更新期间验证数据一致性,避免不必要的长时间运行的事务)。...事务边界和方法调用 @Transactional 在方法级别上工作,在事务方法中调用非事务方法可能会导致意外行为: 问题:如果事务方法调用修改数据的非事务辅助方法,则这些更改可能不属于事务的一部分,并且可以独立提交...• 确保即使在发生异常的情况下资源也会关闭(使用 finally 块或 Spring 的声明式资源管理功能)。

    70610
    领券