带有自定义视图的UIPickerView存在视觉错误

时间:2016-08-17 21:56:11

标签: ios swift uipickerview

我正在构建一个自定义UIPickerView,我想向用户显示的信息不仅仅是一行文字。为了做到这一点,我正在构建一个自定义视图以显示在UIPickerView中(最终应该显示标题,图像和3行文本)。

测试第一个版本,我得到了整个运行,但有一些不寻常的视觉错误。这是他们的样子(我目前只显示标题,其余的是空白的白色背景,UIPickerView有浅灰色背景来区分两者):

Upon first load 当我第一次加载视图时,我只能看到UIPickerView的灰色。我通过调用func pickerView(pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat并将其设置为300来调整"选择窗口。

Dragging the picker view 在UIPickerView上向上和向下滑动显示实际上存在我为其创建的视图。可以看到它们消失在视图的顶部区域。

After scrolling all the way down and all the way up 最后,在完全向下滚动并再次向上滚动之后,我可以清楚地看到第一个项目/视图。但就是这样,其他自定义视图在滚动它们时仍保持隐藏或仅在顶部可见#34;远离"。

以下是我如何通过自定义类创建单个视图(然后我只是将它们附加到数组中):

class PickerView: UIView {

    // MARK: Variables

    var titleLabel: UILabel = UILabel()

    // MARK: - Init

    init(frame: CGRect, name: String) {
        super.init(frame: frame)
        self.backgroundColor = UIColor.whiteColor()
        addTitle(name)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("NSCoding not supported")
    }

    // MARK: - Functions

    func addTitle(title: String) {
        // basic setup
        titleLabel.text = title
        titleLabel.font = UIFont(name: "Apple SD Gothic Neo", size: 20.0)
        titleLabel.sizeToFit()

        // position the title
        let x = (self.bounds.size.width - titleLabel.bounds.size.width) / 2
        titleLabel.frame = CGRectMake(x, 5, titleLabel.bounds.size.width, titleLabel.bounds.size.height)
        self.addSubview(titleLabel)
    }
}

数组函数(创建具有不同值的几个PickerView类并将它们附加到数组中)被调用如下:PickerViewBuilder().getViewArrayForDimensions(filmPicker.bounds.size.width, height: pickerViewHeight)

如果有人能指出我的方向,我真的很高兴(我现在能做的就是或多或少地随机尝试不同的设置/变量)。它与故事板设置有关,还是我的代码中的东西?

感谢您的帮助!

0 个答案:

没有答案