PHPicker로 선택된 이미지 개수에 따른 수평 스크롤을 만드는데 큰 어려움을 느꼈다.
for num in 0..<imageCount {
let imageView = UIImageView()
let postionX = owner.mainView.frame.width * CGFloat(num)
imageView.frame = CGRect(x: postionX, y: 0, width: owner.mainView.frame.width, height: owner.mainView.scrollView.bounds.height)
imageView.image = owner.userImageArray[num]
owner.mainView.scrollView.addSubview(imageView)
owner.mainView.scrollView.contentSize.width = owner.mainView.frame.width * CGFloat(1+num) // scrollView의 넓이 설정
}
이미지의 개수가 많아지면서 자연스럽게 수평 스크롤이 되게 하기 위해서는 CGReact로 정확한 x,y좌표 및 높이 넓이를 잡아줘야된다.
우리가 의도하는 것은 하나의 이미지가 하나의 화면을 채우길 원하니 (0,0) 다음 이미지는 첫번째 이미지 끝의 x좌표이다. 이걸 의미하는 코드는 let postionX = owner.mainView.frame.width * CGFloat(num)이다.
하나의 이미지가 화면 가득 채우는 코드는 CGRect(x: postionX, y: 0, width: owner.mainView.frame.width, height: owner.mainView.scrollView.bounds.height)중에서 owner.mainView.frame.width, owner.mainView.scrollView.bounds.height을 의미한다.
마지막으로 scrollView는 이미지 개수에 맞게 width가 정해져야 하니 owner.mainView.scrollView.contentSize.width = owner.mainView.frame.width * CGFloat(1+num)로 정하는 것이다.
그래서 매 이미지가 추가될때마다 해당 연산을 해주면 무리없이 추가해줄 수 있다.