Skip to content

Commit ffce3af

Browse files
committed
Added get indexPath from datasource. Added editable flag to text field cells.
1 parent bc61515 commit ffce3af

File tree

5 files changed

+23
-4
lines changed

5 files changed

+23
-4
lines changed

SPDiffable.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22

33
s.name = 'SPDiffable'
4-
s.version = '4.0.8'
4+
s.version = '4.0.9'
55
s.summary = 'Extension of Diffable API which allow not duplicate code and use less models. Included example for SideBar.'
66
s.homepage = 'https://github.com/ivanvorobei/SPDiffable'
77
s.source = { :git => 'https://github.com/ivanvorobei/SPDiffable.git', :tag => s.version }

Sources/SPDiffable/Table/Cells/SPDiffableTextFieldTitleTableViewCell.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ open class SPDiffableTextFieldTitleTableViewCell: UITableViewCell {
4444
}
4545

4646
private func commonInit() {
47+
if #available(iOS 13.0, *) {
48+
textLabel?.textColor = .secondaryLabel
49+
}
4750
textField.backgroundColor = .clear
4851
contentView.addSubview(textField)
4952
}
@@ -65,6 +68,7 @@ open class SPDiffableTextFieldTitleTableViewCell: UITableViewCell {
6568
textField.delegate = item.delegate
6669
textField.clearButtonMode = item.clearButtonMode
6770
textField.textAlignment = .right
71+
textField.isEnabled = item.editable
6872
accessoryView = .none
6973
selectionStyle = .none
7074
}

Sources/SPDiffable/Table/DataSource/SPDiffableTableDataSource.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,17 @@ open class SPDiffableTableDataSource: NSObject, SPDiffableDataSourceInterface {
160160
return snapshot.sectionIdentifiers[index]
161161
}
162162

163+
public func getIndexPath(id: String) -> IndexPath? {
164+
guard let item = getItem(id: id) else { return nil }
165+
guard let indexPath = appleDiffableDataSource?.indexPath(for: item) else { return nil }
166+
return indexPath
167+
}
168+
169+
public func getIndexPath(item: SPDiffableItem) -> IndexPath? {
170+
guard let indexPath = appleDiffableDataSource?.indexPath(for: item) else { return nil }
171+
return indexPath
172+
}
173+
163174
// MARK: - Private
164175

165176
private func convertToSnapshot(_ sections: [SPDiffableSection]) -> AppleTableDiffableDataSource.Snapshot {

Sources/SPDiffable/Table/Models/SPDiffableTableRowTextField.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ open class SPDiffableTableRowTextField: SPDiffableItem {
3131
open var autocapitalizationType: UITextAutocapitalizationType
3232
open var clearButtonMode: UITextField.ViewMode
3333
open weak var delegate: UITextFieldDelegate?
34+
open var editable: Bool
3435

3536
public init(
3637
id: String,
@@ -41,7 +42,8 @@ open class SPDiffableTableRowTextField: SPDiffableItem {
4142
keyboardType: UIKeyboardType,
4243
autocapitalizationType: UITextAutocapitalizationType,
4344
clearButtonMode: UITextField.ViewMode,
44-
delegate: UITextFieldDelegate?
45+
delegate: UITextFieldDelegate?,
46+
editable: Bool = true
4547
) {
4648
self.icon = icon
4749
self.text = text
@@ -51,6 +53,7 @@ open class SPDiffableTableRowTextField: SPDiffableItem {
5153
self.keyboardType = keyboardType
5254
self.autocapitalizationType = autocapitalizationType
5355
self.clearButtonMode = clearButtonMode
56+
self.editable = editable
5457
super.init(id: id)
5558
}
5659
}

Sources/SPDiffable/Table/Models/SPDiffableTableRowTextFieldTitle.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ open class SPDiffableTableRowTextFieldTitle: SPDiffableTableRowTextField {
3535
keyboardType: UIKeyboardType,
3636
autocapitalizationType: UITextAutocapitalizationType,
3737
clearButtonMode: UITextField.ViewMode,
38-
delegate: UITextFieldDelegate?
38+
delegate: UITextFieldDelegate?,
39+
editable: Bool = true
3940
) {
4041
self.title = title
41-
super.init(id: id, icon: icon, text: text, placeholder: placeholder, autocorrectionType: autocorrectionType, keyboardType: keyboardType, autocapitalizationType: autocapitalizationType, clearButtonMode: clearButtonMode, delegate: delegate)
42+
super.init(id: id, icon: icon, text: text, placeholder: placeholder, autocorrectionType: autocorrectionType, keyboardType: keyboardType, autocapitalizationType: autocapitalizationType, clearButtonMode: clearButtonMode, delegate: delegate, editable: editable)
4243
}
4344
}

0 commit comments

Comments
 (0)