forked from organicmaps/organicmaps
Fixed UI bugs in downloader for iOS6 and lower.
This commit is contained in:
parent
aa7b45d80a
commit
4ba95f7a81
2 changed files with 21 additions and 16 deletions
|
@ -221,17 +221,17 @@
|
|||
|
||||
@implementation NSString (Size)
|
||||
|
||||
- (CGSize)sizeWithDrawSize:(CGSize)size font:(UIFont *)font
|
||||
- (CGSize)sizeWithDrawSize:(CGSize)drawSize font:(UIFont *)font
|
||||
{
|
||||
if ([self respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)])
|
||||
{
|
||||
CGRect rect = [self boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : font} context:nil];
|
||||
return [UIScreen mainScreen].scale == 1 ? CGRectIntegral(rect).size : rect.size;
|
||||
CGRect rect = [self boundingRectWithSize:drawSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : font} context:nil];
|
||||
return CGRectIntegral(rect).size;
|
||||
}
|
||||
else
|
||||
{
|
||||
CGSize size = [self sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByWordWrapping];
|
||||
return [UIScreen mainScreen].scale == 1 ? CGRectIntegral(CGRectMake(0, 0, size.width, size.height)).size : size;
|
||||
CGSize size = [self sizeWithFont:font constrainedToSize:drawSize lineBreakMode:NSLineBreakByWordWrapping];
|
||||
return CGRectIntegral(CGRectMake(0, 0, size.width, size.height)).size;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -133,44 +133,49 @@
|
|||
|
||||
- (void)alignProgressView
|
||||
{
|
||||
self.progressView.minX = self.progressMode ? self.width - [self rightOffset] + 2 : self.width;
|
||||
self.progressView.minX = self.progressMode ? self.contentView.width - [self rightOffset] + 2 : self.contentView.width;
|
||||
}
|
||||
|
||||
- (void)alignSubviews
|
||||
{
|
||||
self.progressView.hidden = self.parentMode || !self.progressMode;
|
||||
self.progressView.midY = self.height / 2;
|
||||
self.progressView.midY = self.contentView.height / 2;
|
||||
|
||||
self.arrowView.center = CGPointMake(self.width - [self minimumRightOffset] - 4, self.height / 2);
|
||||
self.arrowView.center = CGPointMake(self.contentView.width - [self minimumRightOffset] - 4, self.contentView.height / 2);
|
||||
self.arrowView.hidden = !self.parentMode;
|
||||
|
||||
[self.statusLabel sizeToIntegralFit];
|
||||
self.statusLabel.width = MAX(self.statusLabel.width, 60);
|
||||
[self.sizeLabel sizeToIntegralFit];
|
||||
self.statusLabel.frame = CGRectMake(self.width - [self rightOffset] - self.statusLabel.width, 14, self.statusLabel.width, 16);
|
||||
self.statusLabel.frame = CGRectMake(self.contentView.width - [self rightOffset] - self.statusLabel.width, 14, self.statusLabel.width, 16);
|
||||
self.statusLabel.hidden = self.parentMode;
|
||||
|
||||
CGFloat const sizeLabelMinY = self.statusLabel.maxY;
|
||||
self.sizeLabel.frame = CGRectMake(self.width - [self rightOffset] - self.sizeLabel.width, sizeLabelMinY, self.sizeLabel.width, 16);
|
||||
self.sizeLabel.frame = CGRectMake(self.contentView.width - [self rightOffset] - self.sizeLabel.width, sizeLabelMinY, self.sizeLabel.width, 16);
|
||||
self.sizeLabel.textColor = [UIColor colorWithColorCode:@"999999"];
|
||||
self.sizeLabel.hidden = self.parentMode;
|
||||
|
||||
CGFloat const rightLabelsMaxWidth = self.parentMode ? 10 : MAX(self.statusLabel.width, self.sizeLabel.width);
|
||||
CGFloat const leftLabelsWidth = self.width - [self leftOffset] - [self betweenSpace] - rightLabelsMaxWidth - [self rightOffset];
|
||||
CGFloat const leftLabelsWidth = self.contentView.width - [self leftOffset] - [self betweenSpace] - rightLabelsMaxWidth - [self rightOffset];
|
||||
|
||||
CGFloat const titleLabelWidth = [self.titleLabel.text sizeWithDrawSize:CGSizeMake(1000, 20) font:self.titleLabel.font].width;
|
||||
self.titleLabel.frame = CGRectMake([self leftOffset], self.subtitleLabel.text == nil ? 19 : 10, MIN(titleLabelWidth, leftLabelsWidth), 20);
|
||||
self.subtitleLabel.frame = CGRectMake([self leftOffset], self.titleLabel.maxY + 1, leftLabelsWidth, 18);
|
||||
self.subtitleLabel.hidden = self.subtitleLabel.text == nil;
|
||||
|
||||
self.routingImageView.center = CGPointMake(self.width - 25, self.height / 2 - 1);
|
||||
self.routingImageView.center = CGPointMake(self.contentView.width - 25, self.contentView.height / 2 - 1);
|
||||
self.routingImageView.alpha = [self shouldShowRoutingView];
|
||||
|
||||
self.separatorTop.frame = CGRectMake(0, 0, self.width, PIXEL);
|
||||
self.separatorTop.frame = CGRectMake(0, 0, self.contentView.width, PIXEL);
|
||||
self.separatorTop.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
|
||||
|
||||
self.separatorBottom.frame = CGRectMake(0, self.height - PIXEL, self.width, PIXEL);
|
||||
self.separatorBottom.frame = CGRectMake(0, self.contentView.height - PIXEL, self.contentView.width, PIXEL);
|
||||
self.separatorBottom.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleTopMargin;
|
||||
|
||||
// On iOS6 and lower table view looks different, we won't show separators there.
|
||||
if (SYSTEM_VERSION_IS_LESS_THAN(@"7.0")) {
|
||||
self.separatorTop.alpha = self.separator.alpha = self.separatorBottom.alpha = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)prepareForReuse
|
||||
|
@ -193,8 +198,8 @@
|
|||
self.badgeView.minY = self.titleLabel.minY - 5;
|
||||
|
||||
self.separator.minX = self.titleLabel.minX;
|
||||
self.separator.size = CGSizeMake(self.width - 2 * self.separator.minX, PIXEL);
|
||||
self.separator.maxY = self.height;
|
||||
self.separator.size = CGSizeMake(self.contentView.width - 2 * self.separator.minX, PIXEL);
|
||||
self.separator.maxY = self.contentView.height;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue