问题描述
我有一个 UIPickerView 组件,我在需要时使用它——pickerView 有一个 viewmodel,所以我可以注入一个值数组,然后显示它。没有什么非常复杂的,只是视图中的一个选择器视图在标题中带有一些按钮来取消或确认选择。
您现在可以查看我当前的问题。 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) }
这些都没有做任何特别或与您期望的不同的事情。
我在pickerView上包含了一张xib文件的图像:
我的最终解决方案可能是逐步重新创建组件,以查看问题是否在一段时间后发生,但理想情况下,我想了解为什么会发生这种情况,而不仅仅是消失。