我有一张约有40条记录的表格。我想总是在某个位置选择位于屏幕中心的单元格。每当我从表中进行scrool时,它应该将所选行更改为当前位于中心的行。 它与拾取器相同,但该行有多个图像和标签,因此无法制作拾取器。
是否可以做类似的事情?
答案 0 :(得分:2)
使用UIPickerView可以 ,听起来就像你正在尝试重新创建的那样。
您需要做的就是替换UIPickerView中的视图。您需要两种方法通常不需要 - 您需要指定高度,并且需要定义要用于行的视图
func pickerView(pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat
{
return self.myRowHeight
}
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView
{
var myView = UIView(frame: CGRectMake(0, 0, pickerView.bounds.width, self.myRowHeight))
// define & add whatever controls you need
myView.addSubview(myControl1)
myView.addSubview(myControl2)
return myView
}
答案 1 :(得分:0)
是的,但这听起来像是一个糟糕的用户界面。
UITableView是UIScrollview的子类。您可以将自己设置为滚动视图委托,并响应委托调用scrollViewDidScroll(_:)
和/或scrollViewDidEndDecelerating(_:)
,更改选择。
但是,如果您使用了选择器视图,我认为您可以获得更好的用户体验。您可以设置选择器视图以使用每个索引的视图,因此您应该能够提供包含多个图像视图和标签作为子视图的自定义视图。