이것은 나의 첫 번째 항목입니다. 나는 독일에서 앱 디자인을 처음 접했지만 여전히 내 문제를 이해할 수 있기를 바랍니다. Xcode 11과 Swift 5를 사용했습니다.
페이지 컨트롤과 스크롤보기를 사용하여 한 화면에서 이미지를 전환하고 있습니다. iPhone 11에서는 좋아 보이지만 iPhone 8에서는 이미지의 너비와 높이가 너무 커서 페이지 컨트롤이 두 번째 세그먼트에있을 때 첫 번째 이미지의 일부가 여전히 표시 될 수 있습니다. 두 번째 이미지와 세 번째 세그먼트에서도 마찬가지입니다. 이것은 문제를 잘 보여줍니다. 이미지를 화면 크기에 맞추는 방법이 있습니까?
이것은 내 코드입니다.
```
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!
var Pages: [String] = ["Page1","Page2","Page3"]
var frame = CGRect.zero
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
pageControl.numberOfPages = Pages.count //
setupScreens()
scrollView.showsHorizontalScrollIndicator = false
scrollView.showsVerticalScrollIndicator = false
scrollView.isPagingEnabled = true
scrollView.delegate = self
}
func setupScreens() {
for index in 0..<Pages.count {
// 1.
frame.origin.x = scrollView.frame.size.width * CGFloat(index)
frame.size = scrollView.frame.size
// 2.
let imageView = UIImageView(frame: frame)
imageView.image = UIImage(named: Pages[index])
self.scrollView.addSubview(imageView) }
// 3.
scrollView.contentSize = CGSize(width: (scrollView.frame.size.width * CGFloat(Pages.count)), height: scrollView.frame.size.height)
scrollView.delegate = self
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width
pageControl.currentPage = Int(pageNumber)
}
}
```
코드는 완전히 호출을 제외하고 잘 작동됩니다 setupScreens()
에 방법을 viewDidLoad()
.
해당 메서드를 호출 viewDidLayoutSubviews
하여 scrollView
.
override func viewDidLayoutSubviews() {
setupScreens()
}
여기 에서 데모 다운로드
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다