UIViewController
이 클래스에는 Swift 코드가 연결되어 있습니다. 이 코드는 기본적으로 View Controller에 UIScrollView
이미지를 추가합니다.UICcrollView가 ViewController에 표시 될 때 UIButton이 표시되지 않습니다.
내가 그러나이 경우에는 UIButton
내가 코드를 통해 할 수있는 ViewController
에 추가하고자하고, 나는 스토리 보드를 사용하여 ViewController
에 UIButton
을 추가 할 수 있습니다.
UIButton
을 추가 한 다음 내 프로젝트를 실행하면 UIButton
은 표시되지 않으며 UIScrollView
만 표시됩니다.
질문 : 무슨 일
, 왜 볼 수 UIButton
아닌가요? UIButton
을 (스토리 보드에) 추가하고 프로젝트를 실행할 때 이것이 표시되고 (프로그래밍 방식으로 생성 된) UIScrollView
앞에 표시되게하려면 어떻게해야합니까?
class ScrollViewController: UIViewController, UIScrollViewDelegate {
var scrollView: UIScrollView!
var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
imageView = UIImageView(image: UIImage(named: "image.png"))
scrollView = UIScrollView(frame: view.bounds)
scrollView.backgroundColor = UIColor.blackColor()
scrollView.contentSize = imageView.bounds.size
scrollView.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]
scrollView.contentOffset = CGPoint(x: 1000, y: 450)
scrollView.addSubview(imageView)
view.addSubview(scrollView)
scrollView.delegate = self
setZoomScale()
setupGestureRecognizer()
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return imageView
}
override func viewWillLayoutSubviews() {
setZoomScale()
}
func setZoomScale() {
let imageViewSize = imageView.bounds.size
let scrollViewSize = scrollView.bounds.size
let widthScale = scrollViewSize.width/imageViewSize.width
let heightScale = scrollViewSize.height/imageViewSize.height
scrollView.minimumZoomScale = min(widthScale, heightScale)
scrollView.zoomScale = 1.0
}
func scrollViewDidZoom(scrollView: UIScrollView) {
let imageViewSize = imageView.frame.size
let scrollViewSize = scrollView.bounds.size
let verticalPadding = imageViewSize.height < scrollViewSize.height ? (scrollViewSize.height - imageViewSize.height)/2 : 0
let horizontalPadding = imageViewSize.width < scrollViewSize.width ? (scrollViewSize.width - imageViewSize.width)/2 : 0
scrollView.contentInset = UIEdgeInsets(top: verticalPadding, left: horizontalPadding, bottom: verticalPadding, right: horizontalPadding)
}
func setupGestureRecognizer() {
let doubleTap = UITapGestureRecognizer(target: self, action: "handleDoubleTap:")
doubleTap.numberOfTapsRequired = 2
scrollView.addGestureRecognizer(doubleTap)
}
func handleDoubleTap(recognizer: UITapGestureRecognizer) {
if (scrollView.zoomScale > scrollView.minimumZoomScale) {
scrollView.setZoomScale(scrollView.minimumZoomScale, animated: true)
} else {
scrollView.setZoomScale(scrollView.maximumZoomScale, animated: true)
}
}
}
당신은 버튼 제약 제대로 충돌의 어떤 종류가없는 것을 확인 설정 했습니까? –
예, 폭, 높이를 설정하고 가운데에 맞 춥니 다. 충돌이 없습니다. 프로젝트를 실행하고'UIScrollView'를 축소하면'UIButton'을 볼 수 있습니다 만 앞에있는 것이 아니라'UIScrollView' 뒤에 있습니다. – user4806509