Ios 使用swift 3在tableVIew中自动选择单元格

Ios 使用swift 3在tableVIew中自动选择单元格,ios,iphone,swift,swift3,Ios,Iphone,Swift,Swift3,我有一张大约有40张唱片的桌子。我希望总是选择屏幕中央的单元格,在某个位置。每当我从表中执行scrool时,它都会将所选行更改为当前位于中间的行。 它与选取器相同,但行具有多个图像和标签,因此不可能生成选取器 有可能做类似的事情吗?是的,有可能,但听起来像是一个糟糕的用户界面 UITableView是UIScrollview的一个子类。您可以将自己设置为scroll view代理,并响应代理调用,如scrollViewDidScroll(:)和/或ScrollViewDidEndDecellin

我有一张大约有40张唱片的桌子。我希望总是选择屏幕中央的单元格,在某个位置。每当我从表中执行scrool时,它都会将所选行更改为当前位于中间的行。 它与选取器相同,但行具有多个图像和标签,因此不可能生成选取器


有可能做类似的事情吗?

是的,有可能,但听起来像是一个糟糕的用户界面

UITableView是UIScrollview的一个子类。您可以将自己设置为scroll view代理,并响应代理调用,如
scrollViewDidScroll(:)
和/或
ScrollViewDidEndDecelling(:)
,更改选择


但是,我认为如果使用选择器视图,您会有更好的用户体验。您可以设置选择器视图,以便为每个索引使用一个视图,因此您应该能够提供一个自定义视图,其中包含多个图像视图和标签作为子视图。

这在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
}

可能您应该使用UICollectionView而不是UITableView。使用collectionView,您将有更多的自由来显示单元格。但是使用选择器可以在分区中分离组件吗?选择器视图支持多个组件,是的。每个组件分别滚动。这就是你想要的吗?如果你分成几个组件,那么每个组件都可以独立选择——这听起来不像你需要的。