전체 글

개발/아이오에스

swift] scrollview안에서 uibutton - 액션이(touchupInside) 먹히지 않음

노란색 / 초록색이 UI button이고 scrollView - systemRed 이고 스크롤뷰안에 있는 뷰가 viewInScroll 이고 viewInScroll 안에 버튼과 달력 UI가 있다. viewInScroll의 높이가 높아지면 스크롤이 작동을 하도록 구현을 했다. 이 달력 UI를 만들면서 해당 버튼을 테스트해봤지만 버튼의 액션이 작동하지 않았다. UI를 그릴 때가 문제인가? addTarget을 잘못 선언했나? UIbutton을 lazy var 형태로 바꿔보며... 고생을 많이 했다... 이런저런 시도를 다 해봤지만 작동하지 않아 scrollView를 의심을 해봤다. 결론은 scrollView안에 존재하는 UIView인 viewInScroll의 높이, bottom제약이 걸려있지 않아 해당 버튼이 ..

개발/아이오에스

swift] 코드로 UIscrollView 구현하기

let scrollView: UIScrollView = { let sv = UIScrollView() sv.translatesAutoresizingMaskIntoConstraints = false sv.backgroundColor = .systemRed return sv }() let viewInScroll: UIView = { let uv = UIView() uv.translatesAutoresizingMaskIntoConstraints = false uv.backgroundColor = .systemBlue return uv }() //스크롤뷰와 스크롤뷰 안에 들어 갈 뷰를 선언해준다. func initLayout(){ view.addSubview(scrollView) scrollView.topAnc..

카테고리 없음

swift] 한 개의 함수로 여러 UIButton 액션 분기처리하기

@objc func clickLeftNavi(_ sender: UIButton){ if sender === button1 { } else if === button2{ } ....... switch sender { case button1: .... case button2: .... } } let button1 = { let btn = UIButton() btn.translatesAutoresizingMaskIntoConstraints = false btn.addTarget(self, action: #selector(clickLeftNavi(_:)), for: .touchUpInside) return btn }() let button2 = { let btn = UIButton() btn.translatesA..

개발/아이오에스

swift] 테이블뷰의 특정 셀의 좌표값 얻기

let rectOfCellInTableView = self.tableView.rectForRow(at: IndexPath(row: 5, section: 0)) //5번째 셀의 좌표 값 let rectOfCellInSuperview = self.tableView.convert(rectOfCellInTableView, to: self.view) let viewPosition = CGPoint(x: rectOfCellInSuperview.origin.x, y: rectOfCellInSuperview.origin.y) 이렇게 테이블뷰의 특정 셀의 위치를 얻어 이러한 메뉴 버튼을 만들 수 있다.

개발/아이오에스

swift] KVO 사용 tableview의 높이 동적으로 할당

mCon.tableView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil) override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { // //알림 추가/제거에 따른 테이블뷰의 높이 값 변경하기 // if keyPath == "contentSize" { if let newValue = change?[.newKey] { // print("->newValue",newValue) if let newSize = newValue..

개발/아이오에스

swift] 상황(조건)에 맞는 NSLayoutConstraint 처리

struct TransitionCst { var tableViewHeight : NSLayoutConstraint? var existListConstraitY : NSLayoutConstraint? var existListConstraitN : NSLayoutConstraint? } 스크롤뷰안에 뷰의 bottomAnchor은 스크롤의 길이를 결정 - viewInScroll.bottomAnchor mCst.existListConstraitY = mCon.tableView.bottomAnchor.constraint(equalTo: mCon.viewInScroll.bottomAnchor) mCst.existListConstraitN = mCon.emptyText.bottomAnchor.constraint(eq..

dev.jake
484jake