여기에 UITextField가 UICollectionView의 일부가 아닌 솔루션이 있습니다. 이 CollectionView : 수퍼에 선도, 높이, 최고 수퍼하려면, 텍스트 필드의 수평 간격
나는 다음과 같은 레이아웃 제약 내 스토리 보드에 collectionView 및 TextField를 추가했다.
TextField : collectionView와 동일한 높이, 수퍼 뷰로 후행, 너비 = 100, collectionView의 가로 간격.
나는 textField의 너비 제약 조건에 대한 IBOutlet을 만들었습니다. 너비는 텍스트가 입력 될 때 동적으로 변경됩니다.
스위프트 3 샘플 코드
class ViewController: UIViewController {
@IBOutlet weak var collectionView: UICollectionView!
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var textFieldWidthConstraint: NSLayoutConstraint!
var textArray: [String] = [String]()
@IBAction func editingChanged(_ sender: AnyObject) {
let size = textField.sizeThatFits(textField.frame.size)
textFieldWidthConstraint.constant = max(size.width,100)
if textArray.count > 0 {
self.collectionView.scrollToItem(at: IndexPath(row: self.textArray.count-1, section: 0), at: .right, animated: true)
}
}
@IBAction func addText(_ sender: AnyObject) {
if textField.text?.characters.count ?? 0 > 0 {
textArray.append(textField.text!)
textField.text = ""
textFieldWidthConstraint.constant = 100
let newIndexPath = IndexPath(row: textArray.count-1, section: 0)
collectionView.insertItems(at: [newIndexPath])
collectionView.performBatchUpdates({
}, completion: { (_) in
self.collectionView.scrollToItem(at: newIndexPath, at: .right, animated: true)
})
}
}
}
나도 같은 생각되었다 ...이 답변은 좋은 해결 방법입니다. 그것은 당신이 필요로하는 것의 효과를 줄 것입니다. @ 엘렌 마틴 –
대단히 감사합니다. @ carien-van-zyl. 앞으로 며칠 이내에이 문제를 해결해 나갈 것입니다. 현상금 만료에 대해 사과드립니다. 나는 며칠 동안 떨어져있었습니다! –