Resizing UITableView to fit content
// Swift 5 and 4.2 solution without KVO, DispatchQueue, or setting constraints yourself.
// This solution is based on Gulz's answer.
// 1) Create a subclass of UITableView:
import UIKit
final class ContentSizedTableView: UITableView {
override var contentSize:CGSize {
didSet {
invalidateIntrinsicContentSize()
}
}
override var intrinsicContentSize: CGSize {
layoutIfNeeded()
return CGSize(width: UIView.noIntrinsicMetric, height: contentSize.height)
}
}
// 2) Add a UITableView to your layout and set constraints on all sides. Set the class of it to ContentSizedTableView.
// 3) You should see some errors, because Storyboard doesn't take our subclass' intrinsicContentSize into account. Fix this by opening the size inspector and overriding the intrinsicContentSize to a placeholder value. This is an override for design time. At runtime it will use the override in our ContentSizedTableView class
Are there any code examples left?
New code examples in category Swift
-
Swift 2022-03-27 20:55:05 swift sleep milliseconds
-
Swift 2022-03-27 18:20:18 swift how to call a function
-
Swift 2022-03-27 13:40:24 swift loop through array
-
Swift 2022-03-27 06:15:23 swift image button blue
-
Swift 2022-03-25 03:15:09 Finger Print in Swift
-
Swift 2022-03-25 02:20:26 swift save data to file
-
Swift 2022-03-25 00:20:01 closure swift
-
Swift 2022-03-24 13:45:28 change textview link color swift
-
Swift 2022-03-19 12:45:01 swift uitextfield only numbers keyboard lock programmatically
-
Swift 2022-03-18 00:25:20 how to read music library from iphone programmatically in swift