调整 UITextField 的宽度以填充横向工具栏

2024-03-23

In a UIToolbar,我添加了一个UITextField到栏的中间(它被添加为UIBarButtonItem) 和另外一个UIBarButtonItem(操作按钮)在它旁边。我在最左边和最右边添加了灵活的空格键按钮项目。它在纵向上看起来很棒,但是当我旋转到横向时,它会居中并且看起来不错,但我需要拉伸文本字段以填充宽度并将最后一个按钮向右推 - 与消息中的完全一样 - 在iPhone 和 iPad。

我认为自动布局可以解决问题,但苹果声明你不能为UIBarButtonItems。事实上,当我选择任何栏按钮或文本字段时,它不允许创建任何约束。

您能让我知道如何实现这一目标吗?谢谢!

EDIT: I've tried a few other combinations with fixed/flexible spaces. When I don't add any, the text field and share button are pushed over to the left:
enter image description here

相反,如果我使用固定空格,它看起来与上面的 0 宽度完全相同,或者如果我设置一个宽度,那么它显然会将它们推倒。最右边的最后一个空格没有任何效果——它没有固定在最右边,所以它会离开屏幕。

I tried a fixed space on the left and a flexible on the right, with the middle one fixed (or no middle one), and it looks like the screenshot above. I then changed the middle one to flexible and it turned out like this:
enter image description here

If I change the first to flexible, none in the middle (or if I add a fixed one), and flxed on the right, it is moved over to the right:
enter image description here

If the first is flexible, middle is flexible, and right is fixed, this is how it looks:
enter image description here

在所有情况下,文本字段的宽度都保持与故事板中最初设置的静态值相同。我认为问题在于,当您通过拖动框架来设置宽度时,没有可以捕捉的蓝色参考线,因此它将始终保持相同的宽度。

我是否错过了任何空格组合?如果我无法在界面生成器中实现所需的行为,那么如何在代码中实现这一目标?


为了获得水平拉伸的文本字段,我必须手动设置它frame in viewWillAppear当方向改变时 - 我用过viewWillTransitionToSize:withTransitionCoordinator::

[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext>  __nonnull context) {
    self.textField.frame = CGRectMake(0, 0, self.navigationController.navigationBar.frame.size.width - self.actionButton.width - 55, self.inputTextField.frame.size.height);
} completion:^(id<UIViewControllerTransitionCoordinatorContext>  __nonnull context) {
}];


以前的解决方案(在最新的操作系统中不再适用于我):

将其添加到viewDidLoad:

self.textField.autoresizingMask = UIViewAutoresizingFlexibleWidth;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调整 UITextField 的宽度以填充横向工具栏 的相关文章

  • 在 Swift 4 IOS 中将 XML 数据获取到 String 中

    我有一个 XML 字符串格式 我想使用 Swift 4 从它获取单个值到字符串变量 我的数据如下 let myString Adasdnajinasdshabjdbaiusd Encrypted Text Sample let MyResu
  • 分段表单上传和 NSURLSession.uploadTaskWithRequest 之间的区别

    来自网络编程领域 我非常喜欢使用多部分表单请求来上传文件 然而 在iOS中 我们有一个东西叫做NSURLSession用方法uploadTaskWithRequest 这似乎是调用进行图像上传等操作的方法 您能解释一下这两种方法之间的区别吗
  • Xcode 7.1 在归档 swift ios 应用程序时挂起

    Xcode 7 1 在归档应用程序时 挂在 复制 Swift 标准库 处 知道为什么吗 对于面临同样问题的其他人 在尝试了其他所有方法并失败后 通过重新启动 mac 来修复它 D
  • 无法直接在iPhone上运行react-native应用程序(部署目标错误)

    问题 当我在模拟器中运行react native时 它工作正常 我现在尝试在直接连接到 MacBook 的 iPhone 上运行它 但出现了问题 有几个警告说Deployment Target is set to 7 0 这个具体是在哪里设
  • 在 iOS6 中处理手势识别器

    显然 当你有手势识别器和手势识别器时 iOS 6 会尝试自动处理这种情况 UIButton在同一个地方 用同一个手势被激活 当您想要单击按钮而不是激活手势识别器时 这种新的自动处理可以解决问题 但是产生了一个新问题当您希望手势识别器起作用时
  • 键盘扩展:是否可以继承 iOS 现有键盘的功能和 UI?

    自定义键盘扩展 https developer apple com library ios documentation General Conceptual ExtensibilityPG Keyboard html是 iOS 8 中的一个
  • Semaphore.wait(timeout: .now()) 的目的是什么?

    看了一些苹果代码示例 我发现了这一点 func metadataOutput output AVCaptureMetadataOutput didOutput metadataObjects AVMetadataObject from co
  • 添加滑动删除UITableViewCell

    我正在制作一个清单应用程序UITableView 我想知道如何添加滑动删除UITableViewCell 这是我的 ViewController swift import UIKit class ViewController UIViewC
  • itunesconnect 应用程序 - 恢复到以前的版本

    我发布了我的应用程序的更新并获得批准 尽管它包含一个严重的本地化错误 大多数用户都得到了错误的语言 但它还是获得了批准 有什么方法可以快速恢复到以前的版本 暂停当前版本的当前下载 或者其他任何可能有助于解决此问题的方法 我几年前确实读过以下
  • 在数组中查找距用户位置最近的经度和纬度

    我有一个充满经度和纬度的数组 我的用户位置有两个双变量 我想根据我的阵列测试用户位置之间的距离 看看哪个位置最近 我该怎么做呢 这将得到两个位置之间的距离 但很难理解 我如何针对一系列位置对其进行测试 CLLocation startLoc
  • 一段时间后 NSTimer 停止在后台触发

    嘿 我正在开发一个应用程序 其中我必须每 30 秒调用一次 API 所以我为它创建了 NSTimer 但是当我的应用程序进入后台时 计时器会在 3 4 分钟后停止触发 所以它只能在后台运行 3 4 分钟 但之后就不再运行了 我如何修改我的代
  • 在 (BOOL)webView 中:如何打开在 UIWebView 中单击的 URL 以打开模态 UIWebView

    感谢您查看我的问题 让我先描述一下该应用程序 我有一个适用于 iOS5 1 的基于选项卡栏的应用程序 它使用情节提要和 ARC 有四个选项卡 每个选项卡都有一个视图控制器 显示带有本地 HTML 文件的 Web 视图 每个视图是要显示的一组
  • iOS中保存到照片库后获取UIImage数据

    将我的应用程序创建的图像保存到 iPhone 库并尝试将其恢复后 我遇到了问题 图像数据不同 创建图像 1 Code 我在不使用 alpha 的情况下创建图像 事实上 如果我使用 alpha 我会得到相同的结果 UIImage create
  • 将应用程序委托定义为常量?

    我正在尝试编写 iPhone 应用程序 但遇到了问题 我已经在类中声明了一个常量作为应用程序委托 define ikub iKubMobileAppDelegate UIApplication sharedApplication deleg
  • Xcode 6 找不到 cocoapods 库

    我正在尝试构建一个使用 CocoaPods 的 Xcode 5 项目 POD 文件如下 target MyProjectName do pod AFNetworking 2 2 1 pod SVProgressHUD 0 9 pod MDH
  • (响应式)表格宽度不适合 ios safari 上 iframe 内的容器

    我在 iPhone 的 safari 上的 iframe 内渲染表格时遇到问题 这是示例 http jsfiddle net qb86ojms http jsfiddle net qb86ojms 如果您在桌面浏览器 较小的尺寸 或 and
  • 如何使用 UIImagePickerController 呈现 ViewController

    我试图提出一个ImagePicker 然后在用户选择图像后 呈现图像编辑ViewController用户可以在其中操作图像 然后将编辑后的图像发送回原始图像ViewController 问题 是否有一种标准或最佳实践方法从初始 ViewCo
  • UIVisualEffectView 无法在 iPhone 6 上运行

    看来UIVisualEffectView在 iPhone 6 6S 上运行时不会模糊背景 我只在网上看到一个人提到过这一点苹果开发者论坛 https forums developer apple com thread 16754 但这里什么
  • BLE:使用 Android / iOS 读取长特征值

    对于正常的特征读取 仅读取 MTU 大小 20 字节 的数据 我的客户将提供更大尺寸 超过 100 字节 的特征 我看到 BLE 提供了 长读取 功能 可以读取直到达到特征的大小 https bluegiga zendesk com ent
  • ios 如何为文本字段添加底部边框和侧面设计

    我想添加底部边框 如下图所示 我已成功添加底线 但我没有得到侧面小线 这是我的代码 CALayer border CALayer layer CGFloat borderWidth 1 border borderColor UIColor

随机推荐