목록앱 개발/iOS (88)
나의 발자취
// MARK: - DataSource Delegate Methods// ???: - 잘 모르겠는데// TODO: - things to do// FIXME: - 수정 // !!!: - 경고. 전달된 값이 nil이 아니어야함
서로 다른 기능을 하는 JS 함수를 Swift에서 받아 처리해 버튼으로 상호작용하는 방법에 대해 알아보겠다.(버튼이 있을 위치를 위해)1. 웹뷰 frame 크기 조절지난번에 이어서 프레임 사이즈를 조절해줄 것이다.메서드의 파라미터로 frame: view.frame로 넘겨준것에서, frame 변수를 생성하여 별도로 크기를 정의하기로 한다. var webView = WKWebView(frame: view.frame, configuration: webViewConfig) let frame = CGRect(origin: view.frame.origin, size: CGSize(width: view.frame.width, height: view.frame.height/3*2))var webView = WKWebV..
웹페이지를 로드하는 일은 기본적으로 아래와 같은데, 표시한 내용을 iOS에서 구현해주는 것이다.인터넷 브라우저가 URL을 파싱해서 스킴/도메인/path로 구분한 후 해당 IP 주소와 포트 주소로 웹 서버를 연결하고,그다음 HTTP request(헤더, 쿠키, user agent 정보가 들어감)를 보낸다.그러면 상대편 서버가 리퀘스트 처리를 하여 요청한 데이터와 함께, status code가 포함된 HTTP response를 다시 보낸다.브라우저가 이 응답(HTML/CSS/JS) 및 다른 리소스를 받아서 페이지를 렌더링하기 시작한다.브라우저는 HTML으로부터 DOM을 생성하고, CSS/JS를 반영해서 웹페이지를 디스플레이한다.최종 페이지가 스크린에 나타나서 user interaction을 대기하는 상태로 ..
교안 전체 row(40개) 중 18번 정도 nil을 반환하다가 그 이후부터는 재사용.func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { var cell: UITableViewCell? = tableView.dequeueReusableCell(withIdentifier: "cell") print(cell) if cell == nil { // 나중에 재사용될 때 어떻게 사용된다고 파라미터로 넘기는 cell = UITableViewCell(style: .default, reuseIdentifier: "cell") ..
IndexPathpublic protocol UITableViewDelegate : NSObjectProtocol, UIScrollViewDelegate {@available(iOS 2.0, *)optional public func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) IndexPath로 section, row, item을 받는다.IndexPath.sectionIndexPath.rowIndexPath.item UITableViewCellCell 안에 ContentView가 있고, ContentView 안에 세 개의 UIView(1 UIImage, 2 UILabe..
Protocol은 말그대로 규약이라는 뜻으로, 어떤 프로퍼티/메서드를 꼭 가져야할지 명시를 하는 방법이다. 예를 들어 어떤 타입은 어떤 프로토콜을 따라하는지 = 어떤 규약(규칙)을 준수해야하는지 얘기를 해주는것인데,이렇게 해놓으면 그 타입은 어떤 프로퍼티/메서드를 가지고 있는지 예측가능한 장점이 있다. UIPickerView에서 고를 수 있는 걸 component라고 하고, 각각의 옵션을 row라고 한다. 각각의 컴포넌트, 로우 개수를 DataSource에서 함수를 통한 질의로 전달받게 된다.public protocol UIPickerViewDataSource : NSObjectProtocol { // returns the number of 'columns' to display. @available(..
1. Button 내 이미지 크기 조절Preferred Symbol Config에서 Config를 Point Size로 설정 후 크기를 설정한다. 2. index 범위를 벗어나면 버튼이 비활성화되도록 만들기1) hardcode 모드 // Button Action @IBAction func leftBtnTouched(_ sender: Any) { if index = btsImages.count { index = btsImages.count - 1} imageView.image = UIImage(named: btsImages[index]) } 3. PageControl pageControl.numberOfPages = btsImages.count ..
ViewController 파일과 뷰 삭제 후에 Cmd+N -> Cocoa Touch Class 를 누르고 상속받을 SuperClass를 지정하면 Class명이 디폴트로 'ViewController'로 지정된다. 만약 커스텀하고싶으면 앞에 아무렇게 커스텀해서 적으면 된다. 그러면 Assistant를 클릭했을때 아래와 같이 아직 연결이 되지 않았을 것이다. 해당 뷰의 Identity Inspector에서, 방금 만든 Class 코코아터치 파일로 Class 연결을 해준다.