Вложите UIScrollView в Swift - PullRequest
0 голосов
/ 01 мая 2018

У меня есть прокрутка массива изображений, он работает для прокрутки изображений влево и вправо, но я не могу прокрутить вниз, вместо этого я могу прокручивать свои ячейки таблицы ... Мне нужно иметь возможность прокручивать вниз и мой массив изображений не зафиксирован на виде, есть ли способы?

коды, которые я использовал:

    override func viewDidLoad() {
    super.viewDidLoad()
    scrollView.frame = view.frame
    imageArray = [UIImage(named:"adsImage3")!,UIImage(named:"adsImage2")!,UIImage(named:"adsImage")!]
    navigationController?.navigationBar.barTintColor = UIColor.white

    for i in 0..<imageArray.count {
        let imageView = UIImageView()
        imageView.contentMode = .scaleAspectFit
        imageView.clipsToBounds = true
        imageView.image = imageArray[i]
        let xPosition = self.view.frame.width * CGFloat(i)
        imageView.frame = CGRect(x: xPosition, y: 0, width: self.scrollView.frame.width, height: 380)

        scrollView.contentSize.width = scrollView.frame.width * CGFloat(i + 1)
        scrollView.addSubview(imageView)
    }

}

что касается моей раскадровки, это выглядит так: enter image description here

если бы я поместил свое прокручиваемое представление в мое табличное представление, мой код был бы func tableView (_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell: MainMenuRowSelectionTableViewCell = self.tableView.dequeueReusableCell (withIdentifier: "Cell", for: indexPath) как! MainMenuRowSelectionTableViewCell

    var cellColors = ["#FFB3B3","#FFFFFF"]
    cell.contentView.backgroundColor = UIColor(hexString: cellColors[indexPath.row % cellColors.count])

    imageArray = [UIImage(named:"adsImage3")!,UIImage(named:"adsImage2")!,UIImage(named:"adsImage")!]

    for i in 0..<imageArray.count {
        let imageView = UIImageView()
        imageView.contentMode = .scaleAspectFit
        imageView.clipsToBounds = true
        imageView.image = imageArray[i]
    }
    return cell
}

и моя раскадровка

enter image description here

таким образом, мое представление прокрутки не будет отображаться вообще

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Да, это можно сделать. Хорошим справочником для вложенных представлений прокрутки является Документация Apple Там также имеется образец кода.

Короче говоря, вам, вероятно, потребуется создать:

  1. A UIScrollView, который заполняет вид и может выполнять вертикальную прокрутку,
  2. A UIScrollView в пределах для изображений и может прокручиваться по горизонтали, а
  3. Ваш UITableView также находится в первом представлении прокрутки.

enter image description here

0 голосов
/ 01 мая 2018

Мне нужно иметь возможность прокручивать вниз и не фиксировать массив изображений на виде

Представление таблицы - это представление вертикальной прокрутки. Вы должны превратить горизонтальное представление прокрутки изображений в представление заголовка для табличного представления (то есть его tableHeaderView), и заставить табличное представление занимать весь экран. Теперь вы можете прокручивать таблицу, и вы будете прокручивать представление изображений вне экрана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...