FUINoteFormCell
open class FUINoteFormCell : FUIAutofittingDrawingTableViewCell<FUINoteFormCellContentView>, FUIFormCell
The reusable UI component implemented as an UITableViewCell
to allow user enter notes.
This is the new implementation to replace the previous implementation of FUINoteFormCell
.
The cell height is automatically adjusted to allow the whole content to be displayed.
However, the cell height is also limited to the height of the screen above the soft keyboard height.
Developer could use to UITableViewDelegate
‘s func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat
to set a fixed height for the cell. Or, use minNumberOfLines
and maxNumberOfLines
properties to limit the cell height.
Usage
let cell = tableView.dequeueReusableCell(withIdentifier: FUINoteFormCell.reuseIdentifier) as! FUINoteFormCell
cell.onChangeHandler = { [unowned self] newValue in
self.noteText = newValue
}
cell.placeholder.text = "Enter Description"
cell.value = noteText
cell.isTrackingLiveChanges = true
Theming
Supported TEXT
class paths:
fdlFUINoteFormCell_valueText {}
fdlFUINoteFormCell_placeholder {}
Supported TEXT
properties:
font-color: Color;
font-style: UIFontTextStyle;
Supported TINTABLE
class paths:
fdlFUIKeyValueFormCell_valueText {}
Supported TINTABLE
properties:
tint-color { -disabled }: Color;
font-style { -disabled }: UIFontTextStyle;
-
The enum for the version to be displayed in
See moreFUINoteFormCell
orFUIKeyValueFormCell
.Declaration
Swift
public enum Version
-
The version to be displayed.
The default is
.v2
Declaration
Swift
public var version: Version { get set }
-
Indicates if the note text could be modified or not. The default is true.
Declaration
Swift
public var isEditable: Bool { get set }
-
If
isTrackingLiveChanges
is true, thenonChangeHandler
will be invoked for every letter entered.Otherwise,
onChangeHandler
will be invoked only after user taps “Done” key, or the field resigns first responder.Defaults to
false
.Declaration
Swift
public var isTrackingLiveChanges: Bool { get set }
-
If this is true, this
FUINoteFormCell
will grow in height and the cell will not be scrollable. Otherwise, the cell height will be fixed.Declaration
Swift
@available(*, deprecated, message: "This property is deprecated. Please use 'maxNumberOfLines' property.") public var isAutoFitting: Bool { get set }
-
The minimum number of lines in this
FUINoteFormCell
.The cell height will be set to display the text with this number of lines. The default value is 1. Setting this value to less or equal to zero is ignored. This property is ignored when the height of the cell is fixed.
Declaration
Swift
public var minNumberOfLines: Int { get set }
-
The maximum number of lines in this
FUINoteFormCell
.The cell height could grow to display the text with this number of lines. This property is ignored when the height of the cell is fixed. The view will be scrollable when the text entered needs more lines to be displayed. The default is 0, which means no limit.
Note that more text may be displayed in the view due to extra top and buttom margins of the text view in the cell.
Declaration
Swift
public var maxNumberOfLines: Int { get set }
-
This is the maximum length of the note text, if maxNoteTextLength is greater than 0.
If the text length reaches this limit, the user cannot enter more text. Note: If the user pastes a string and the length plus the current text length is greater than the limit, the insert is rejected. Partial strings are not accepted in the text field.
The default value for maxNoteTextLength is 0, which means no limit.
Declaration
Swift
public var maxNoteTextLength: Int { get set }
-
The UI component holds the note text.
Declaration
Swift
public var valueTextView: FUITextView { get }
-
The placeholder string to be put on the text area before user typed anything.
Declaration
Swift
@available(*, deprecated, message: "This property is deprecated. Please use `placeholder.text`.") @IBInspectable public var placeholderText: String? { get set }
-
The hint text.
Declaration
Swift
open var hintText: String? { get set }
-
Indicates if the cell is read-only or not.
The default is
false
.Declaration
Swift
open var isReadOnly: Bool { get set }
-
Declaration
Swift
open override func systemLayoutSizeFitting(_ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority, verticalFittingPriority: UILayoutPriority) -> CGSize