ios - UIPickerView 中的 UILabel 上的额外空间
问题描述
我有一个 UIPickerView 组件,当我需要它时我会使用它——pickerView 有一个 viewModel,所以我可以注入一个值数组,然后显示它。没有什么很复杂的,只是在一个视图中的一个pickerView,在标题中有一些按钮来取消或确认选择。
您现在可以看到我当前的问题。UIPickerTableViewTitledCell 包含一个 UILabel ,由于某种原因它没有对齐到左边 - 有一个小间隙。这很奇怪,因为它发生在我设置固定组件宽度(如上)以及我将组件设置为屏幕宽度时。
我努力了:
查看选择器的内容模式 - 将其更改为
centre
似乎没有任何影响使用属性并将它们与其他没有此问题的选择器进行比较(在不同的组件中)
查看 pickerDelegate 方法 - 它们似乎都很正常
// MARK: - UIPickerViewDelegate func pickerView(_: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return viewModel?.numberOfRowsInPicker(forComponent: component) ?? 0 } func pickerView(_: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return viewModel?.titleFor(row, forComponent: component) } func numberOfComponents(in _: UIPickerView) -> Int { viewModel?.numberOfComponentsInPicker ?? 1 } func pickerView(_: UIPickerView, widthForComponent component: Int) -> CGFloat { if let width = viewModel?.width(forComponent: component) { return width } return UIScreen.main.bounds.width / CGFloat(viewModel?.numberOfComponentsInPicker ?? 1) }
这些都没有做任何与您期望的特殊或不同的事情。
我已经包含了 xib 文件的图像,其中包含对 pickerView 的约束:
我的最终解决方案可能是逐步重新创建组件,以查看问题是否在特定时间后出现,但理想情况下,我想了解为什么会发生这种情况,而不仅仅是消失。
解决方案
推荐阅读
- reactjs - 检测 Nextjs 中是否加载了动态导入的组件
- javascript - 如何修改复杂的过滤器对象(用于搜索数组)
- javascript - 无法播放嵌入在通过 JS 创建的 iframe 中的 youtube 视频
- java - 如何向外部库添加 Spring Boot 支持?
- powershell - Powershell Rest API 传递参数的问题
- python - 从另一个数据框中获取数据
- amazon-kinesis - 将事件推送到 Kinesis 时出现 DaemonException
- java - 使用 Gson 出现 MalformedJsonException 错误
- sql - SQL中的外键到数据透视表 - 数据库设计
- c - Switch case 不会继续下一条语句