From 72de81113037b942e8843ab1824b58f6e1a908dd Mon Sep 17 00:00:00 2001 From: hulk Date: Fri, 11 Apr 2014 14:36:14 +0800 Subject: [PATCH 1/7] 1.RETableViewCreditCardCell (canFocus ->canFocusWithItem). 2.Sometimes not need REActionBar, only when needed to load REActionBar. --- .../Cells/RETableViewCreditCardCell.m | 2 +- RETableViewManager/RETableViewCell.m | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/RETableViewManager/Cells/RETableViewCreditCardCell.m b/RETableViewManager/Cells/RETableViewCreditCardCell.m index aa286df..a9ec7b6 100644 --- a/RETableViewManager/Cells/RETableViewCreditCardCell.m +++ b/RETableViewManager/Cells/RETableViewCreditCardCell.m @@ -92,7 +92,7 @@ static inline RECreditCardType RECreditCardTypeFromNumber(NSString *creditCardNu return RECreditCardTypeUnknown; } -+ (BOOL)canFocus ++ (BOOL)canFocusWithItem:(RETableViewItem *)item { return YES; } diff --git a/RETableViewManager/RETableViewCell.m b/RETableViewManager/RETableViewCell.m index 382ba61..dbbdc19 100755 --- a/RETableViewManager/RETableViewCell.m +++ b/RETableViewManager/RETableViewCell.m @@ -36,6 +36,18 @@ @interface RETableViewCell () @implementation RETableViewCell +#pragma mark +#pragma mark Lazy Load + +-(REActionBar *)actionBar +{ + if (nil == _actionBar) + { + _actionBar = [[REActionBar alloc] initWithDelegate:self]; + } + return _actionBar; +} + + (BOOL)canFocusWithItem:(RETableViewItem *)item { return NO; @@ -79,7 +91,6 @@ - (void)addSelectedBackgroundImage - (void)cellDidLoad { self.loaded = YES; - self.actionBar = [[REActionBar alloc] initWithDelegate:self]; self.selectionStyle = self.tableViewManager.style.defaultCellSelectionStyle; if ([self.tableViewManager.style hasCustomBackgroundImage]) { @@ -93,7 +104,10 @@ - (void)cellDidLoad - (void)cellWillAppear { - [self updateActionBarNavigationControl]; + if ([[self class] canFocusWithItem:self.item]) + { + [self updateActionBarNavigationControl]; + } self.selectionStyle = self.section.style.defaultCellSelectionStyle; if ([self.item isKindOfClass:[NSString class]]) { From ed50e86cbba188398ca6df5a13ec95a863a8367d Mon Sep 17 00:00:00 2001 From: mrdaios Date: Mon, 5 May 2014 16:31:36 +0800 Subject: [PATCH 2/7] when there have many PickerViewCell,the data source will be wrong,so reset it. --- RETableViewManager/Cells/RETableViewPickerCell.m | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/RETableViewManager/Cells/RETableViewPickerCell.m b/RETableViewManager/Cells/RETableViewPickerCell.m index c6baeca..3a9d77c 100644 --- a/RETableViewManager/Cells/RETableViewPickerCell.m +++ b/RETableViewManager/Cells/RETableViewPickerCell.m @@ -74,12 +74,14 @@ - (void)cellDidLoad [self.contentView addSubview:self.placeholderLabel]; self.pickerView = [[UIPickerView alloc] init]; - self.pickerView.delegate = self; - self.pickerView.dataSource = self; } - (void)cellWillAppear { + //TODO: i don't know why,but it's work. + //FIXME: later fix + self.pickerView.delegate = self; + self.pickerView.dataSource = self; self.textLabel.text = self.item.title.length == 0 ? @" " : self.item.title; self.textField.inputView = self.pickerView; From 842cfa3337ca209b1149a9781f4ac4b62ffa2cbf Mon Sep 17 00:00:00 2001 From: mrdaios Date: Wed, 21 May 2014 17:23:32 +0800 Subject: [PATCH 3/7] =?UTF-8?q?Retableviewlongtextcell=20title=E7=BD=AE?= =?UTF-8?q?=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RETableViewManager/Cells/RETableViewLongTextCell.m | 1 + 1 file changed, 1 insertion(+) diff --git a/RETableViewManager/Cells/RETableViewLongTextCell.m b/RETableViewManager/Cells/RETableViewLongTextCell.m index 261e9db..51b98e0 100644 --- a/RETableViewManager/Cells/RETableViewLongTextCell.m +++ b/RETableViewManager/Cells/RETableViewLongTextCell.m @@ -67,6 +67,7 @@ - (void)setSelected:(BOOL)selected animated:(BOOL)animated - (void)cellWillAppear { [super cellWillAppear]; + self.textLabel.text = @""; self.selectionStyle = UITableViewCellSelectionStyleNone; UILabel *label = self.textLabel; From fd458b2c657169fa04b9b07b013669dc1f34fc39 Mon Sep 17 00:00:00 2001 From: mrdaios Date: Fri, 22 Aug 2014 10:58:22 +0800 Subject: [PATCH 4/7] fix: block __weak --- RETableViewManager/Cells/RETableViewSegmentedCell.m | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/RETableViewManager/Cells/RETableViewSegmentedCell.m b/RETableViewManager/Cells/RETableViewSegmentedCell.m index b7f13b0..839ff84 100644 --- a/RETableViewManager/Cells/RETableViewSegmentedCell.m +++ b/RETableViewManager/Cells/RETableViewSegmentedCell.m @@ -58,6 +58,7 @@ - (void)cellDidLoad - (void)cellWillAppear { + __weak __typeof(self) myself = self; self.textLabel.text = self.item.title; [self.contentView removeConstraints:self.contentView.constraints]; [self.segmentedControl removeAllSegments]; @@ -78,11 +79,11 @@ - (void)cellWillAppear if (self.item.segmentedControlTitles.count > 0) { [self.item.segmentedControlTitles enumerateObjectsUsingBlock:^(NSString *title, NSUInteger idx, BOOL *stop) { - [self.segmentedControl insertSegmentWithTitle:title atIndex:idx animated:NO]; + [myself.segmentedControl insertSegmentWithTitle:title atIndex:idx animated:NO]; }]; } else if (self.item.segmentedControlImages.count > 0) { [self.item.segmentedControlImages enumerateObjectsUsingBlock:^(UIImage *image, NSUInteger idx, BOOL *stop) { - [self.segmentedControl insertSegmentWithImage:image atIndex:idx animated:NO]; + [myself.segmentedControl insertSegmentWithImage:image atIndex:idx animated:NO]; }]; } self.segmentedControl.tintColor = self.item.tintColor; From 8c1f81c8e3c346906c4348e514119a3e1287dc7e Mon Sep 17 00:00:00 2001 From: mrdaios Date: Fri, 22 Aug 2014 10:58:52 +0800 Subject: [PATCH 5/7] fix: DatePicker default is [NSDate date] --- .../Cells/RETableViewDateTimeCell.m | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/RETableViewManager/Cells/RETableViewDateTimeCell.m b/RETableViewManager/Cells/RETableViewDateTimeCell.m index fb37920..f8f4d95 100644 --- a/RETableViewManager/Cells/RETableViewDateTimeCell.m +++ b/RETableViewManager/Cells/RETableViewDateTimeCell.m @@ -83,11 +83,27 @@ - (void)cellWillAppear { self.textLabel.text = self.item.title.length == 0 ? @" " : self.item.title; self.textField.inputView = self.datePicker; - self.datePicker.date = self.item.value ? self.item.value : (self.item.pickerStartDate ? self.item.pickerStartDate : [NSDate date]); + if (self.item.value || self.item.pickerStartDate) + { + if (self.item.value) + { + self.datePicker.date = self.item.value; + } + else if (self.item.pickerStartDate) + { + self.datePicker.date = self.item.pickerStartDate; + } + } self.datePicker.datePickerMode = self.item.datePickerMode; self.datePicker.locale = self.item.locale; - self.datePicker.calendar = self.item.calendar; - self.datePicker.timeZone = self.item.timeZone; + if (self.item.calendar) + { + self.datePicker.calendar = self.item.calendar; + } + if (self.item.timeZone) + { + self.datePicker.timeZone = self.item.timeZone; + } self.datePicker.minimumDate = self.item.minimumDate; self.datePicker.maximumDate = self.item.maximumDate; self.datePicker.minuteInterval = self.item.minuteInterval; @@ -133,7 +149,9 @@ - (void)setSelected:(BOOL)selected animated:(BOOL)animated #endif self.item.inlinePickerItem = [REInlineDatePickerItem itemWithDateTimeItem:self.item]; [self.section insertItem:self.item.inlinePickerItem atIndex:self.item.indexPath.row + 1]; + [self.tableViewManager.tableView beginUpdates]; [self.tableViewManager.tableView insertRowsAtIndexPaths:@[self.item.inlinePickerItem.indexPath] withRowAnimation:UITableViewRowAnimationFade]; + [self.tableViewManager.tableView endUpdates]; } else { if (selected && self.item.inlineDatePicker && self.item.inlinePickerItem) { [self setSelected:NO animated:NO]; @@ -142,7 +160,9 @@ - (void)setSelected:(BOOL)selected animated:(BOOL)animated NSIndexPath *indexPath = [self.item.inlinePickerItem.indexPath copy]; [self.section removeItemAtIndex:self.item.inlinePickerItem.indexPath.row]; self.item.inlinePickerItem = nil; + [self.tableViewManager.tableView beginUpdates]; [self.tableViewManager.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; + [self.tableViewManager.tableView endUpdates]; } } } From a6e2b0e49d7c66f72d6a7042d07d3f531ffa58e3 Mon Sep 17 00:00:00 2001 From: mrdaios Date: Thu, 11 Sep 2014 15:43:04 +0800 Subject: [PATCH 6/7] fixbug: end editing before actionBarDoneButtonTapHandler. --- RETableViewManager/RETableViewCell.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/RETableViewManager/RETableViewCell.m b/RETableViewManager/RETableViewCell.m index dbbdc19..5d13c50 100755 --- a/RETableViewManager/RETableViewCell.m +++ b/RETableViewManager/RETableViewCell.m @@ -307,10 +307,9 @@ - (void)actionBar:(REActionBar *)actionBar navigationControlValueChanged:(UISegm - (void)actionBar:(REActionBar *)actionBar doneButtonPressed:(UIBarButtonItem *)doneButtonItem { + [self endEditing:YES]; if (self.item.actionBarDoneButtonTapHandler) self.item.actionBarDoneButtonTapHandler(self.item); - - [self endEditing:YES]; } @end From 86a488309fef208bcb1630fa7bf5492478f4a4f6 Mon Sep 17 00:00:00 2001 From: mrdaios Date: Sat, 11 Oct 2014 14:41:59 +0800 Subject: [PATCH 7/7] =?UTF-8?q?pickerItem=E6=B7=BB=E5=8A=A0=E9=AA=8C?= =?UTF-8?q?=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RETableViewManager/Items/REPickerItem.m | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/RETableViewManager/Items/REPickerItem.m b/RETableViewManager/Items/REPickerItem.m index f5e26b2..46d1a39 100644 --- a/RETableViewManager/Items/REPickerItem.m +++ b/RETableViewManager/Items/REPickerItem.m @@ -48,4 +48,9 @@ - (id)initWithTitle:(NSString *)title value:(NSArray *)value placeholder:(NSStri return self; } +- (NSArray *)errors +{ + return [REValidation validateObject:self.value name:self.name ? self.name : self.title validators:self.validators]; +} + @end