Upgrade to Pro — share decks privately, control downloads, hide ads and more …

あなたの知らない UIKit の世界 — UITableView に UITextView を置きたい

cockscomb
September 06, 2016

あなたの知らない UIKit の世界 — UITableView に UITextView を置きたい

cockscomb

September 06, 2016
Tweet

More Decks by cockscomb

Other Decks in Programming

Transcript

  1. let textView = UITextView() textView.text = "Think different" textView.intrinsicContentSize() //

    {w -1 h -1} textView.scrollEnabled = false textView.intrinsicContentSize() // {w 86 h 30}
  2. override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    return 200 } override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return UITableViewAutomaticDimension }
  3. UITableView.beginUpdates() Discussion Call this method if you want subsequent insertions,

    deletion, and selection operations (for example, cellForRowAtIndexPath: and indexPathsForVisibleRows) to be animated simultaneously. You can also use this method followed by the endUpdates method to animate the change in the row heights without reloading the cell. This group of methods must conclude with an invocation of endUpdates. These method pairs can be nested. If you do not make the insertion, deletion, and selection calls inside this block, table attributes such as row count might become invalid. You should not call reloadData within the group; if you call this method within the group, you must perform any animations yourself.
  4. UITableView.beginUpdates() Discussion Call this method if you want subsequent insertions,

    deletion, and selection operations (for example, cellForRowAtIndexPath: and indexPathsForVisibleRows) to be animated simultaneously. You can also use this method followed by the endUpdates method to animate the change in the row heights without reloading the cell. This group of methods must conclude with an invocation of endUpdates. These method pairs can be nested. If you do not make the insertion, deletion, and selection calls inside this block, table attributes such as row count might become invalid. You should not call reloadData within the group; if you call this method within the group, you must perform any animations yourself.