Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Safe area support #632

Merged
merged 3 commits into from
Jul 13, 2020
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Safe area support
esilverberg committed Jan 7, 2020
commit e722dd49074fcf5cc859e54ff2d4bc43b6e5c5db
25 changes: 21 additions & 4 deletions Chatto/Source/ChatController/BaseChatViewController.swift
Original file line number Diff line number Diff line change
@@ -161,9 +161,18 @@ open class BaseChatViewController: UIViewController, UICollectionViewDataSource,
collectionView.autoresizingMask = []
self.view.addSubview(collectionView)
self.view.addConstraint(NSLayoutConstraint(item: self.view, attribute: .top, relatedBy: .equal, toItem: collectionView, attribute: .top, multiplier: 1, constant: 0))
self.view.addConstraint(NSLayoutConstraint(item: self.view, attribute: .leading, relatedBy: .equal, toItem: collectionView, attribute: .leading, multiplier: 1, constant: 0))
self.view.addConstraint(NSLayoutConstraint(item: self.view, attribute: .bottom, relatedBy: .equal, toItem: collectionView, attribute: .bottom, multiplier: 1, constant: 0))
self.view.addConstraint(NSLayoutConstraint(item: self.view, attribute: .trailing, relatedBy: .equal, toItem: collectionView, attribute: .trailing, multiplier: 1, constant: 0))

if #available(iOS 11.0, *) {
let guide = self.view.safeAreaLayoutGuide

collectionView.trailingAnchor.constraint(equalTo: guide.trailingAnchor).isActive = true
collectionView.leadingAnchor.constraint(equalTo: guide.leadingAnchor).isActive = true
} else {
self.view.addConstraint(NSLayoutConstraint(item: self.view, attribute: .leading, relatedBy: .equal, toItem: collectionView, attribute: .leading, multiplier: 1, constant: 0))
self.view.addConstraint(NSLayoutConstraint(item: self.view, attribute: .trailing, relatedBy: .equal, toItem: collectionView, attribute: .trailing, multiplier: 1, constant: 0))
}

collectionView.dataSource = self
collectionView.delegate = self
collectionView.chatto_setContentInsetAdjustment(enabled: false, in: self)
@@ -199,9 +208,17 @@ open class BaseChatViewController: UIViewController, UICollectionViewDataSource,
let inputView = self.createChatInputView()
self.inputBarContainer.addSubview(inputView)
self.inputBarContainer.addConstraint(NSLayoutConstraint(item: self.inputBarContainer, attribute: .top, relatedBy: .equal, toItem: inputView, attribute: .top, multiplier: 1, constant: 0))
self.inputBarContainer.addConstraint(NSLayoutConstraint(item: self.inputBarContainer, attribute: .leading, relatedBy: .equal, toItem: inputView, attribute: .leading, multiplier: 1, constant: 0))
self.inputBarContainer.addConstraint(NSLayoutConstraint(item: self.inputBarContainer, attribute: .bottom, relatedBy: .equal, toItem: inputView, attribute: .bottom, multiplier: 1, constant: 0))
self.inputBarContainer.addConstraint(NSLayoutConstraint(item: self.inputBarContainer, attribute: .trailing, relatedBy: .equal, toItem: inputView, attribute: .trailing, multiplier: 1, constant: 0))

if #available(iOS 11.0, *) {
let guide = self.view.safeAreaLayoutGuide

inputView.trailingAnchor.constraint(equalTo: guide.trailingAnchor).isActive = true
inputView.leadingAnchor.constraint(equalTo: guide.leadingAnchor).isActive = true
} else {
self.inputBarContainer.addConstraint(NSLayoutConstraint(item: self.inputBarContainer, attribute: .leading, relatedBy: .equal, toItem: inputView, attribute: .leading, multiplier: 1, constant: 0))
self.inputBarContainer.addConstraint(NSLayoutConstraint(item: self.inputBarContainer, attribute: .trailing, relatedBy: .equal, toItem: inputView, attribute: .trailing, multiplier: 1, constant: 0))
}
}

private func addInputContentContainer() {