티스토리 뷰
iOS(swift)
[Swift 4] Messenger, Chatting UI, Bubble 1. TableView, Custom Cell AutoLayout
광그로 2017. 12. 4. 18:46#TableView Cell #Custom TableView Cell #Messenger #Chatting UI #Chatting Room #XIB #Bubble #Bubble Cell
프로젝트 코드 : https://github.com/LeeGwangYong/iOS_swift/tree/master/FaceBook
1. NavigationController 추가 및 NavigationBar 수정
2. TableViewController 및 Input View 추가, AutoLayout 설정
ㄱ. 입력창이 될 UIView 추가
leading, trailing, bottom, height 설정
ㄴ. 메세지 로그를 보여줄 UITableView 추가
TableView와 UIView의 'Vertical Spacing'을 0으로 부여
ViewController에 TableView의 Outlet 생성
ㄷ. 입력 UIView의 Bottom Constraint의 Outlet을 ViewController에 추가
키보드가 올라올 때 Constraint를 이용하여 입력창을 올리기 위한 기초작업
2. ViewController 수정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import UIKit class ViewController: UIViewController { @IBOutlet weak var bottomConstraint: NSLayoutConstraint! @IBOutlet weak var messageLogTableView: UITableView! override func viewDidLoad() { super.viewDidLoad() messageLogTableView.separatorStyle = .none messageLogTableView.dataSource = self messageLogTableView.delegate = self } } extension ViewController: UITableViewDelegate { //Transparent Cell Background func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { cell.backgroundColor = UIColor.clear } } extension ViewController: UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 5 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { return UITableViewCell() } } | cs |
3. Message Bubble Cell
ㄱ. UITableViewCell (XIB 포함) 파일 생성
ㄴ. Cell AutoLayout 설정
시간을 나타낼 TextField의 leading >= 30
메세지의 내용이될 TextField의 Lines는 0. leading = 10, trailing = -20, bottom = -10, top = 10 (좌표의 시작점은 좌측상단)
Cell 등록
1234567override func viewDidLoad() {super.viewDidLoad()messageLogTableView.separatorStyle = .nonemessageLogTableView.dataSource = selfmessageLogTableView.delegate = selfself.messageLogTableView.register(UINib(nibName: "MyBubbleCell", bundle: nil), forCellReuseIdentifier: "MyBubbleCell") //ViewController에서 Cell 등록}cs TableView DataSource 수정
1 2 3 4 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "MyBubbleCell", for: indexPath) return cell } | cs |
메세지의 버블 형태를 나타낼 ImageView의 Stretching x = 0.5, y = 0.5, width = 0 , height = 0
'iOS(swift)' 카테고리의 다른 글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 타일링
- MVVM
- WPF
- BOJ
- 스택
- 백준온라인
- 그래프
- 백준
- CustomCollectionViewCell
- Custom Cell
- dfs
- 코딩야학
- Cell Animation
- 데이터 바인딩
- CollectionView
- listview
- Add TapGesture
- Grid
- UIView Animation
- FEED
- 문자열
- command
- 객체
- 생활코딩
- DP
- XAML
- Fakebook
- C++
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함