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

Swift UIButton在本地化期间更改大小,但边界数据不变

在本地化过程中,UIButton的大小可以根据需要进行调整,以适应不同语言环境下的文本长度变化。但是,边界数据指的是按钮的边界框信息,包括位置、大小等,这些数据在本地化过程中不会发生变化。

为了在本地化期间更改UIButton的大小,可以使用Auto Layout或者手动计算按钮的大小。以下是一种常见的方法:

  1. 使用Auto Layout:在Interface Builder中,将UIButton的约束设置为自适应宽度和高度。这样,当按钮的文本长度发生变化时,按钮的大小会自动调整以适应文本。
  2. 手动计算按钮的大小:在代码中,可以使用NSString的size(withAttributes:)方法来计算按钮文本的大小。然后,根据计算得到的文本大小调整按钮的大小。

示例代码如下:

代码语言:txt
复制
// 获取按钮的文本
let buttonText = button.titleLabel?.text ?? ""
// 设置按钮文本的字体
let buttonFont = button.titleLabel?.font ?? UIFont.systemFont(ofSize: 17)
// 计算按钮文本的大小
let textSize = buttonText.size(withAttributes: [NSAttributedString.Key.font: buttonFont])
// 调整按钮的大小
button.frame.size = CGSize(width: textSize.width + 20, height: button.frame.size.height)

这样,无论按钮的文本是什么语言,按钮的大小都会根据文本长度进行调整。

对于边界数据不变的问题,可以通过设置按钮的contentEdgeInsets属性来调整按钮的边界。例如,可以使用以下代码将按钮的边界向内缩进10个点:

代码语言:txt
复制
button.contentEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)

这样,按钮的边界数据不会随着本地化而改变,但按钮的内容会根据文本长度进行调整。

推荐的腾讯云相关产品:腾讯云国际站(https://intl.cloud.tencent.com/)提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以满足各种应用场景的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS之深入解析Xcode 13正式版发布的40个新特性

、Vim 键绑定支持、Swift 包集合; 可以命令行上使用 cktool 与 CloudKit 数据库架构和记录进行交互; 可以命令行上使用 TextureConverter 将纹理压缩为所有 Metal...和 UISlider 支持为使用 Mac Catalyst 构建的应用程序选择首选的行为风格; 视图控制器的大小检查器中使用 Freeform 模拟度量的 Storyboard 场景现在可以直接在画布中使用调整大小旋钮调整大小...,以提取 Objective-C 代码中使用新 NSLocalizedAttributedString 宏的字符串; 导出本地化时,多个本地化中的错误现在会聚合到一个警报对话框中; 导出以进行本地化时...您可以使用此购买选项来确定如果 App Store 店面交易期间发生变化,交易是否继续。如果未添加此选项,则默认为 true。...三十九、TabularData TabularData 是一个新的 Swift 框架,用于分析和操作表格数据

8.7K40

IOS本地化应用

这样做未免过于繁杂,像人们常说的 tedious and useless. 还是先介绍一下本地化的一般流程: (1)伪本地化本地化是将字符串本地化为无意义语言的过程。...(2)冻结UI 应用开发的周期中必需要有一个明白的时间点来冻结UI。在此之后要坚决杜绝会影响本地化的资源变更。nib 文件能够XCode中锁定。...所以,应尽量避免开发后期引入这类变更。 应用本地化的文章之前已经就有非常多大牛写过了。...这里就不在赘述了,直接贴出本人读过的认为还不错的文章: 1、MJ 的应用程序本地化,2013年写的,对于XCode5,有些操作界面已经不一样了,思想是不变的。...做了一下小改动,不改变 frame 的情况下。对 UILabel、UIButton、UITextField 的字体大小做了一下自适应。

87600

Swift 周报 第四十三期

这为宏提供了许多新的用例,包括: 根据函数声明和一些元数据(例如自动合成传递提供的参数的远程过程调用)全面合成函数主体。 通过执行日志/跟踪、检查前置条件或建立不变量来增强函数主体。...当前的方法涉及使用反射,但由于反射元数据对应用程序二进制大小的影响,因此存在可能删除反射元数据的担忧。另一种考虑的方法是使用宏,这些可能不适用于较旧的操作系统版本,从而带来兼容性挑战。...这种方法允许解码不明确的值,但对类型擦除的值(如 AnyEncodable)带来了挑战,使得解码期间难以对类型进行逆向工程。如果解码时不知道类型,则不可能重建原始数据。...尽管函数体宏被认为是另一种潜在的方法,讨论主要集中计算变量或动态查找功能是否可以支持自动验证,最终表达了对 Swift 现有机制中实现它的可行性的怀疑。...这些手动方法旨在在更改期间同步强制验证,确保值保持一致。但是,后一种方法可能会暂时使不变量无效,但可能适用于可接受同步验证的场景,例如避免由于暂时不正确的值导致的 UI 闪烁。

21010

Swift 周报 第四十三期

这为宏提供了许多新的用例,包括: 根据函数声明和一些元数据(例如自动合成传递提供的参数的远程过程调用)全面合成函数主体。 通过执行日志/跟踪、检查前置条件或建立不变量来增强函数主体。...当前的方法涉及使用反射,但由于反射元数据对应用程序二进制大小的影响,因此存在可能删除反射元数据的担忧。另一种考虑的方法是使用宏,这些可能不适用于较旧的操作系统版本,从而带来兼容性挑战。...这种方法允许解码不明确的值,但对类型擦除的值(如 AnyEncodable)带来了挑战,使得解码期间难以对类型进行逆向工程。如果解码时不知道类型,则不可能重建原始数据。...尽管函数体宏被认为是另一种潜在的方法,讨论主要集中计算变量或动态查找功能是否可以支持自动验证,最终表达了对 Swift 现有机制中实现它的可行性的怀疑。...这些手动方法旨在在更改期间同步强制验证,确保值保持一致。但是,后一种方法可能会暂时使不变量无效,但可能适用于可接受同步验证的场景,例如避免由于暂时不正确的值导致的 UI 闪烁。

22010

·第三方网络图片处理框架:SDWebImage(官方文档翻译篇)

目前,虽然AFNetworking也提供了图片下载及缓存策略,更专业的时候,图片加载框架一般用SDWebImage,正如主流APP(如QQ和微信)会用到。...常见问题 ---- 9.1 UITableViewCell与使用动态图像的大小尺寸 UITableView根据单元格的第一个图像集,确定图像的大小尺寸。...如果远程图像的尺寸与占位符图像的大小不同,您可能会遇到奇怪的变形缩放问题。...如果指向的图像发生变化,则网址的某些部分应当相应更改。 如果您无法控制您正在使用的图像服务器,那么当内容更新时,您可能无法更改该URL。例如,Facebook头像URL就是这种情况。...的依赖管理器,它可以自动化并简化项目中使用第三方库的过程。

3.6K20

Swift 4.0 新特性

WWDC 2017 带来了很多惊喜,在这次大会上,Swift 4 也伴随着 Xcode 9 测试版来到了我们的面前,虽然正式版要8月底9月初才会公布,很多强大的新特性正吸引我们去学习它。...因此,使用Swift迁移工具将为您处理大部分更改Xcode中,您可以导航到编辑/转换/到当前Swift语法…以启动转换工具。...支持通过下标来读写容器中的数据,但是如果容器类中的数据类型定义为泛型,以前的下标语法就只能返回 Any,取出值后需要用 as?...} i = values.index(after: comma) } One-sided Slicing Swift 4 新增了一个语法糖 … 可以对字符串进行单侧边界取子串。...编译时如果编译器发现没有任何地方调用了对 Date 进行大小比较的方法,编译器会移除 Comparable 协议的实现,来达到减小包大小的目的。

1.8K90

按钮与交互-使用按钮触发操作

本节中,我们将介绍一个重要且简单的元素,即按钮。这个小元素可以改变整个UX。我们将使用该按钮来缩放我们的3D模型。此外,我们将尝试更改手机的壁纸。...设置 现在,您可以更改项目名称并添加应用程序图标。设置页面中,将显示名称更改为角度AR或所需名称。资产目录中,将应用程序图标从assets文件夹拖放到选定的插槽中。...swift文件中,您将看到一个与之前的ARSCNView链接的IBOutlet。由于我们删除了那个,将新的ARSCNView链接到该Outlet。...选择:IBAction将它们命名为:plusButtonTapped,minusButtonTapped和placeScreenButtonTapped类型:UIButton ?...IBActions 类变量 2个第一个按钮的目的是能够调整我们的3D模型的大小。问题是iPhoneNode的声明是渲染器方法的局部变量。

4.6K20

声明式 UIKit 在有赞美业的实践

当位置和大小被布局接管后,视图之间的依赖没有了,转化为添加视图的顺序和各自的属性,会发现声明式的API布局系统中能非常好地契合。...然而有赞美业是有赞最早迁移到 Swift 的项目,迁移 Swift 后的代码,对 C++ 的兼容其实有一定的局限性,若过多使用 C++,代码中也不能体现 Swift 的优雅性。...从上面代码来看,View 完全可以声明期间操作,之后可以不持有任何的 view,通过父 View 的 subviews 进行持有管理,从而确保整个 view 树一个根节点下挂载。...声明式和响应式数据交互的加持下,我们可以通过响应数据的变化,把 TableView,CollectionView 的MVC设计模式,修改为响应式。...四、未来 虽然现在暂时实现了我们所需要的功能,依旧是建立 UIKit 之上的,声明的并不是 UI 描述,而是直接的UI树,这意味着我们的任何一个布局都是一层 View,无可避免地会在一定程度上加重了我们的

1.4K30

Swift-MVVM 简单演练(三)

Swift-MVVM 简单演练(一) Swift-MVVM 简单演练(二) Swift-MVVM 简单演练(四) 优化一些小细节 设置SVProgressHUD最小提示时间 我们用SVProgressHUD...我们可以更改它显示的最小时间(setMinimumDismissTimeInterval) 像这种全局都能用到的东西,我们最好是设置一个方便管理的地方,这里以AppDelegate中设置 extension...将询问发送通知授权的代码也抽取出来 swift中extension是可以无限多个写的,我们如果能将更多的零碎的方法抽取出来,放到extension中去。代码会清晰很多,也会方便管理很多。...这里不去做那么复杂,只是表达一下,更改导航栏标题显示样式和Button的文字图片左右对调,之前我也写过Objective-C的相关方法iOS-自定义 UIButton-文字左、图片在右(一)、iOS-...自定义 UIButton-文字左、图片在右(二) 将导航栏标题设置成自定义Button 这个没什么技术含量,直接上代码了。

2.5K30

iOS开发之虾米音乐频道选择切换效果分析与实现

代码会在Github上进行分享,Demo实现时依然是使用的Swift语言。...本篇博客是实现该切换效果,实现方式是根据自己的理解来实现的,应该与“虾米音乐”这个实现方式会有不同。...不难看出在放大时Select Tab的基线是不变的,就是放大的效果是从下往上去走的。具体效果就不多说了,直接看下方的GIF吧。 ?...可以定制选中状态下的颜色和大小 可以定制未选中状态下的颜色和大小 可以定制切换时间  下方是该组件的切换和定时方式 ?...然后就使用Scroll + UIButton的方式,发现字体的放大实现不了,虽然字体可使用Scale进行放大,放大后替换成正常的Font, 但是这种效果实现后并不理想,放大过程还是会虚掉。

1.6K30

Swift| 基础语法(五)

前言 总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift...Swift| 基础语法(一) Swift| 基础语法(二) Swift| 基础语法(三) Swift| 基础语法(四) Swift| 基础语法(五) 本文涉及: 纯代码创建应用根试图 UILabel...-> Bool { // 创建UIWindow对象,并初始化该窗口的大小与主屏幕大小相同 let rect : CGRect = UIScreen.main.bounds...} Swift中,创建tableViewCell的方法可以分为两种创建tableView时候注册和需要使用时手动创建。先聊聊创建tableView的时候直接注册cell: myTb?....因为Swift中,所有对象的构造器默认都是public,所以需要重写你的init让其成为私有的。 这样就保证像如下的代码编译报错,不能通过。 六、从相册选择照片或者拍照 ?

2K30

iOS工程师必看的 20 道 面试题

assign主要用于修饰基本数据类型,如NSInteger和CGFloat,这些数值主要存在于栈上。 weak 一般用来修饰对象,assign一般用来修饰基本数据类型。...通过Swift的let设置,使得这些数据达到了真正意义上的“不变”,它也从根本上解决了多线程中内存访问和操作顺序的问题。 设计成值类型还可以提升API的灵活度。...Swift和Objective-C的混编项目中,如何在Swift文件中调用Objective-C文件中已经定义的方法?如何在Objective-C文件中调用Swift文件中定义的方法?...实现一个自定义的UIButton类,在其中添加点击抖动效果的方法(shake方法) 写一个UIButton或者UIView的拓展(extension),然后在其中增加shake方法 定义一个protocol...运行阶段,接收者self.tableview会响应这个消息,期间可能会直接执行、转发消息,也可能会找不到方法崩溃。 所以整个流程是编译器翻译 –> 给接收者发送消息 –> 接收者响应消息三个流程。

3.7K40

点亮你 App 的 5 个 iOS 库

TVButton TVButton 可在 UIButton 控件上重新创建类似于 Apple TV 上看到的美丽视差效果。长按或拖动即可触发效果。...tvButton.layers = [background, pattern, top] 然后,您可以通过更改以下属性来自定义视差效果强度: tvButton.parallaxIntensity =...TKRubberIndicator TKRubberIndicator是Swift制作的库,它可在应用程序中添加橡胶动画页面控件。要使用它,您需要首先导入TKRubberPageControl框架。...DimensionsPickerView 只需要几行代码,DimensionsPickerView 就可让您添加一个漂亮的视图,该视图可用于测量数据输入。...TransitionButton TransitionButton是一个用于添加带有加载和过渡动画的 UIButton 的库。首先,TransitionButton 是 UIButton 的子类。

61220

Swift-MVVM 简单演练(一)

Swift-MVVM 简单演练(二) Swift-MVVM 简单演练(三) Swift-MVVM 简单演练(四) 前言 最近在学习swift和MVVM架构模式,目的只是将自己的学习笔记记录下来,方便自己日后查找...的分类HQButton+Extension,封装快速创建自定义按钮的方法 HQButton.swift extension UIButton { /// 便利构造函数 ///...并且对比一下swift和objective-c的延迟加载异同点 模拟延迟加载数据 /// 加载数据 override func loadData() { // 模拟`延时`加载数据...HQAViewController中加载数据测试 /// 加载数据 override func loadData() { let urlString = "https://api.weibo.com...viewModel的使命 字典转模型逻辑 上拉 / 下拉数据处理逻辑 下拉刷新数据数量 本地缓存数据处理 初体验 因为MVVMswift中都是没有父类的,所以先说下关于父类的选择问题 如果分类需要使用

10.3K51

『 论文阅读』U-Net Convolutional Networks for Biomedical Image Segmentation

因此,Ciresan等人 滑动窗口设置中训练网络,通过提供围绕该像素的局部区域(补丁)作为输入来预测每个像素的类别标签。 首先,这个网络可以本地化。 其次,补丁方面的训练数据远大于训练图像的数量。...至于我们的任务,只有很少的训练数据可用,我们通过对可用的训练图像应用弹性变形来使用过多的数据增强。 这使得网络能够学习这种变形的不变性,而不需要在注释图像语料库中看到这些变换。...Dosovitskiy等人证明了学习不变性的数据增强无监督特征学习的范围内的价值。...通过预先计算每个真实分割的权重图,以补偿训练数据集中某个类的不同频率像素,并迫使网络学习我们触摸单元之间引入的小分离边界(请参阅 图3c和d)。分离边界使用形态学操作来计算。...只有很少的训练样本可用时,数据增强对于教导网络所需的不变性和鲁棒性属性至关重要。

91120

苹果全新UI框架来了!可视化编程,自动化减少20%代码量

开发者通过SwiftUI,利用Swift语法就能够完成代码和设计的同步。 Swift是苹果最新的开发语言,有人呼吁谷歌取代TensorFlow的Python。目前TOIBE排名18位: ?...RedMond排名11 ? SwiftUI还提供对动态类型、暗黑模式、本地化和可访问性的自动支持。 SwiftUI都更新了什么? 此次更新主要有5点: 声明式:更加易读的代码。...虽然Storyboards和XIB很有用,并不是所有人都喜欢。比如在使用源码控制时就很麻烦,会导致代码和可视化布局之间移动变得非常困难;使用动作和outlets时过于依赖flaky系统的连接。...而SwiftUI通过4种方式,解决了上述问题: 用一个新的声明式UI结构,定义了的布局的外观和工作方式 更新UI预览会自动生成新的Swift代码,反之,更改Swift代码也会更新UI预览 Swift中的任何绑定例如有效的...此前,无论什么尺寸屏幕的iPad,总是很难将Interface Builder的大小放到iOS上。而拥有更简单,更快速,更安全的SwiftUI为开发人员实现真正的平台独立性迈出了一大步。

5.4K20
领券