Import commits from the InAppSettingsKit to fix rendering issues in iOS7.

- 66d95030cf
- 3dab71a7e4
This commit is contained in:
Guillaume BIENKOWSKI 2013-10-02 12:08:37 +02:00
parent b189297839
commit 78f9dc3ef7
3 changed files with 16 additions and 6 deletions

View file

@ -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;

View file

@ -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

View file

@ -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;