iOS/AutoLayout (7) 썸네일형 리스트형 iOS - CollectionView 앞에 dynamic TableViewCell 에 CollectionView 를 추가했다 메인 VC와 CollectionVC 를 만들었다 네비게이션 스텍을 쌓지 않아 아래에서 위로 올라오는 방식으로 화면이 표시된다 네비게이션 스택을 쌓아준다. 앞의 테이블뷰에서는 셀을 따로 구성했지만 이번엔 콜렉션뷰 내에서 바로 셀을 구성해 따로 등록 해줄 필요가 없다 extension MyCollectionVC : UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return self.systemImageNameArray.count } //.. iOS - Dynamic TableView Cell 테이블뷰의 각셀을 레이블의 내용 따라 변하는 실습을 했다 테이블뷰에서 셀을 구성해도 되고 이렇게 따로 빼도됨 스텍뷰와 이미지뷰 레이블로 구성해 오토레이 아웃잡아줌 이제 각 셀을 불러오고 테이블뷰에 표시하는 코드 작업을 한다. 데이터는 임의의 배열은 만들었다. override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. //셀 리소스 파일 가져오기 let myTableViewCellNib = UINib(nibName: String(describing: MyTableViewCell.self), bundle: nil) // 셀에 리소스 등록 self.myTableView.register(my.. iOS - Programmatically Animation 오늘은 버튼을 누르면 레이블이 움직이는(레이블의 height 앵커 값이 바뀌는) 실습을 했다 option+ cmd+ 엔터 = preview 창띄우기 option + cmd + p = 미리보기 돌리기 view.backgroundColor = UIColor(named: "MY_PINK") let someView = UIView() someView.backgroundColor = .white someView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(someView) someView.layer.cornerRadius = 8 NSLayoutConstraint.activate([ someView.widthAnchor.constraint(e.. iOS - Programmatically AutoLayout, Preview 이번엔 스토리보드가 아니라 코드로 오토레이아웃을 잡아보자 let myFirstView = UIView() // 코드로 오토레이 아웃 잡을때 해줘야함 myFirstView.translatesAutoresizingMaskIntoConstraints = false myFirstView.backgroundColor = .systemPink // 기존뷰 하위에 서브뷰를 넣는 과정 그 서브뷰는 위에서 정의한 myFirstView self.view.addSubview(myFirstView) 기존 ViewController의 View에 하위 View 로 들어간다. // x축 y축 위치, 가로,세로 myFirstView.centerXAnchor.constraint(equalTo: self.view.centerXAncho.. iOS-StackView 스텍뷰는 크기가 없고 안에 내용물을 채워줘야한다. 전화화면을 실습해보았다 Horizontal 스텍뷰에 Vertical 스텍뷰를 넣고 간격을 줘서 만들었다. 이제 버튼을 동그랗게 만들어보자(빈부분은 크기를 위해 view로 채웠다.) // 인터페이스 빌더에서 디자인 바로 확인 가능하게 함 @IBDesignable class CircleButton : UIButton { // 인스펙터 패널에서 사용될 수 있도록 설정하는것 @IBInspectable var cornerRadius : CGFloat = 0 { // 값이 설정되면 didset 호출 (프로퍼티 옵저버) didSet { layer.cornerRadius = cornerRadius // UI 화면 변경되는 부분을 불 수 있음 layer.masksToBo.. iOS-Constraint Priority autolayout에서 각 앵커가 충돌이 일어날때가 있다. 이때 priority 값을 지정해서 충동하는 앵커에 우선순위를 정해 출동을 피할 수 있다. 1000이 기본값이며, 최대값이다. (후순위 앵커는 쓸일이 없을거 같은데 어떤상황에서 쓰는지 모르겠다.) Hugging 다음 같이 각레이블이 width방향으로 앵커가 걸려있고(초-좌측, 빨- 우측), 두 레이블 사이에 앵커가 걸려있을때 충돌이 일어나게 된다. 이 때 Content Hugging Priority 에서 값을 정해주면 더 높은값의 레이블이 보존되고 낮은값이 당겨진다 초록 레이블의 값이 큰경우 빨간 레이블의 값이 큰경우 Compression Resistence 이건 작은 값을 밀어내며 쉽게 말하면 더 큰값의 레이블 내용을 보존한다. 빨간 레이블이 .. iOS - ScrollView 화면 스크롤 구성이다. 1.scroll View를 가져온다. 2.컨텐트 레이아웃을 잡는다 (UIView 로 하면 편함) => 컨텐트 레이아웃은 스크롤이 가능한 영역 3. 스크롤뷰 안에 넣은 것(UIView) 와 content layout 을 일치 시켜줌 content layout 가이드가 있는데 이걸 드래그 해서 전부추가(shift 누르면서) 4. 스크롤 가능한 영역 조절 => frame layout 가이드와 컨테이너 뷰 맞춘다. (스크롤이 되는 부분 크기를 조절하는것) 빨간 영역이 컨테이너뷰 height 는 lable 내용따라 동적으로 바뀌고 width 는 frame layout과 일치 시킴 이전 1 다음