본문 바로가기

전체 글

(162)
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..
[swift] contains var test = [1,2,3,4] let testcon = test.contains { (testData) -> Bool in return testData == 3 } testcon // true 이전에 contains을 사용해서 해당 배열크기만큼 돌면서 체크를 하는 것을 알고있었지만 해당 리턴값이 하나라도 true라면 그 값이 true로 정해지는지 몰랐다. 예시 코드에서 리턴값은 false, false, true, false 값이지만 결국 true가 하나라도 존재하기 때문에 testcon이라는 변수는 true가 된다.
swift] filter 사용 bool 배열에서 true값 찾아내기 mV.isSelecteds: [bool] = [bool]() let cnt = mV.isSelecteds.filer { (bol) -> Bool in return bol } print(cnt) - [true, true, true] print(cnt.count) - 3