From 78f9dc3ef77ad5737b86835edddde704f06a906a Mon Sep 17 00:00:00 2001 From: Guillaume BIENKOWSKI Date: Wed, 2 Oct 2013 12:08:37 +0200 Subject: [PATCH] Import commits from the InAppSettingsKit to fix rendering issues in iOS7. - https://github.com/futuretap/InAppSettingsKit/commit/66d95030cfac84f17f800056140523742b49957e - https://github.com/futuretap/InAppSettingsKit/commit/3dab71a7e4c6745f0ceca97bf2473f2354474df1 --- .../Controllers/IASKAppSettingsViewController.m | 8 ++++++-- .../Utils/InAppSettingsKit/Models/IASKSettingsReader.h | 8 +++++++- .../Views/IASKPSTitleValueSpecifierViewCell.m | 6 +++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Classes/Utils/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m b/Classes/Utils/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m index a6c143136..f9d7afc19 100755 --- a/Classes/Utils/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m +++ b/Classes/Utils/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m @@ -155,7 +155,11 @@ CGRect IASKCGRectSwap(CGRect rect); - (void) viewDidLoad { [super viewDidLoad]; if ([self isPad]) { - self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLineEtched; + // patch for iOS7 from https://github.com/futuretap/InAppSettingsKit/commit/66d95030cfac84f17f800056140523742b49957e +#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 + if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) // don't use etched style on iOS 7 +#endif + self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLineEtched; } UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapToEndEdit:)]; tapGesture.cancelsTouchesInView = NO; @@ -446,7 +450,7 @@ CGRect IASKCGRectSwap(CGRect rect); if ((title = [self tableView:tableView titleForHeaderInSection:section])) { CGSize size = [title sizeWithFont:[UIFont boldSystemFontOfSize:[UIFont labelFontSize]] constrainedToSize:CGSizeMake(tableView.frame.size.width - 2*kIASKHorizontalPaddingGroupTitles, INFINITY) - lineBreakMode:UILineBreakModeWordWrap]; + lineBreakMode:NSLineBreakByWordWrapping]; return size.height+kIASKVerticalPaddingGroupTitles; } return 0; diff --git a/Classes/Utils/InAppSettingsKit/Models/IASKSettingsReader.h b/Classes/Utils/InAppSettingsKit/Models/IASKSettingsReader.h index 761de7546..a05ddb202 100755 --- a/Classes/Utils/InAppSettingsKit/Models/IASKSettingsReader.h +++ b/Classes/Utils/InAppSettingsKit/Models/IASKSettingsReader.h @@ -97,7 +97,13 @@ #define kIASKMinLabelWidth 97 #define kIASKMaxLabelWidth 240 #define kIASKMinValueWidth 35 -#define kIASKPaddingLeft 9 + +#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 + #define kIASKPaddingLeft (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1 ? 14 : 9) +#else + #define kIASKPaddingLeft 9 +#endif + #define kIASKPaddingRight 10 #define kIASKHorizontalPaddingGroupTitles 19 #define kIASKVerticalPaddingGroupTitles 15 diff --git a/Classes/Utils/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m b/Classes/Utils/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m index 1b7cd98a3..1af806879 100755 --- a/Classes/Utils/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m +++ b/Classes/Utils/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m @@ -32,16 +32,16 @@ CGFloat labelWidth = [self.textLabel sizeThatFits:CGSizeZero].width; CGFloat minValueWidth = (self.detailTextLabel.text.length) ? kIASKMinValueWidth + kIASKSpacing : 0; labelWidth = MIN(labelWidth, viewSize.width - minValueWidth - kIASKPaddingLeft -kIASKPaddingRight - imageOffset); - CGRect labelFrame = CGRectMake(kIASKPaddingLeft + imageOffset, 0, labelWidth, viewSize.height -2); + CGRect labelFrame = CGRectMake(kIASKPaddingLeft + imageOffset, 0, labelWidth, viewSize.height); if (!self.detailTextLabel.text.length) { - labelFrame = CGRectMake(kIASKPaddingLeft + imageOffset, 0, viewSize.width - kIASKPaddingLeft - kIASKPaddingRight - imageOffset, viewSize.height -2); + labelFrame = CGRectMake(kIASKPaddingLeft + imageOffset, 0, viewSize.width - kIASKPaddingLeft - kIASKPaddingRight - imageOffset, viewSize.height); } self.textLabel.frame = labelFrame; // set the right value label frame if (!self.textLabel.text.length) { viewSize = [self.detailTextLabel superview].frame.size; - self.detailTextLabel.frame = CGRectMake(kIASKPaddingLeft + imageOffset, 0, viewSize.width - kIASKPaddingLeft - kIASKPaddingRight - imageOffset, viewSize.height -2); + self.detailTextLabel.frame = CGRectMake(kIASKPaddingLeft + imageOffset, 0, viewSize.width - kIASKPaddingLeft - kIASKPaddingRight - imageOffset, viewSize.height); } else if (self.detailTextLabel.textAlignment == UITextAlignmentLeft) { CGRect valueFrame = self.detailTextLabel.frame; valueFrame.origin.x = labelFrame.origin.x + MAX(kIASKMinLabelWidth - imageOffset, labelWidth) + kIASKSpacing;