IOS [ Swift ]

23.07.31 swift UIview & UIviewcontroller 기초 공부

oong2 2023. 7. 31. 20:55

우선 오늘 공부한 7개강의에서 마지막파트인 스크롤뷰스크롤줌의 코드이다.

import UIKit

class ViewController: UIViewController, UIScrollViewDelegate {
    
    var scrollView : UIScrollView!
    var imageView: UIImageView!
    
    override func viewDidLoad(){
        super.viewDidLoad()
        scrollView = UIScrollView(frame: CGRect(origin: CGPoint(x: 0, y: 300), size: CGSize(width: view.bounds.width, height: 300)))
        scrollView.delegate = self
        
        let image = UIImage(systemName: "folder.fill")
        imageView = UIImageView(image: image)
        imageView.contentMode = .scaleAspectFit
        imageView.frame = CGRect(origin: .zero,
                                 size: CGSize(width: 100, height: 100))
        
        scrollView.addSubview(imageView)
        
        scrollView.contentSize = CGSize(width: view.bounds.width*2, height: 300*2)
        scrollView.minimumZoomScale = 0.5
        scrollView.maximumZoomScale = 2.0
        
        view.addSubview(scrollView)
        
    }
    
    
    func viewForZooming(in scrollView: UIScrollView) -> UIView? {
        return imageView
    }
}

 

오늘 배운걸 토대로 이해한내용을 살짝 서술해보면

 

 

 

scrollView = 뒤에 프레임을 넣어주고 cgrect를 넣은뒤 x y 의 값으로 해당사항의 위치정렬과 크기조절이 가능하다.

( 강의가 얼마나 불친절하냐면 frame은 뭐며 cgrect가 뭐며 cgpoint가 뭐며 하나도 안알려줌 그냥 자기는 알고있으니까 넌 따라와 느낌 )

 

let image 로 객체만들어서 뒤에 넣을 아이콘은 systemName에 지정해준다.

 

minimumZommScale 과 maximumZoomScale 의 값으로 확대축소의 값을 지정해준다.

 

그리고 마지막엔 view.addSubview를 꼭 넣어줘야 구동화면확인이 가능하다.

이런식으로 줌인 줌아웃등이 가능하다.

 

아직 코드에대한 개념은 이해가 1도안되지만 , 공식문서를 잘 참조해 가며 구글링을 잘 해보는게 핵심인것같다.

코드에 대한 개념을 이해하지않고 코드를 짜는 것 만큼 

비효율적인게 없는것같다는 생각이라, 무조건 이해를 하고 넘어가야하는 내 성격을 잘 활용 해야 할것같다.

 

오늘의 목표였던 시뮬레이션 구동시켜보기는 완료했다.

남은시간동안에는 저번에 풀지못했던 알고리즘들에 대해서 더 고민해보는 시간을 가져봐야겠다.