【发布时间】:2017-04-09 01:52:17
【问题描述】:
我被困在从以下位翻译方法。
在原来的Objective-C中,方法是:
+ (CGFloat)defaultFontSize
{
CGFloat pointSize = 16.0;
NSString *contentSizeCategory = [[UIApplication sharedApplication] preferredContentSizeCategory];
pointSize += SLKPointSizeDifferenceForCategory(contentSizeCategory); //stucj here
return pointSize;
}
到目前为止,我在 Swift 中做了以下工作:
let defaultFontSize: Float {
get {
let pointSize = 16.0
let contentSizeCategory = UIApplication.shared.preferredContentSizeCategory
//What do here for SLKPointSizeDifferenceForCategory?
}
}
特别是我不知道怎么翻译SLKPointSizeDifferenceForCategory,这是一个unused static CGFloat:
__unused static CGFloat SLKPointSizeDifferenceForCategory(NSString *category)
{
if ([category isEqualToString:UIContentSizeCategoryExtraSmall]) return -3.0;
if ([category isEqualToString:UIContentSizeCategorySmall]) return -2.0;
if ([category isEqualToString:UIContentSizeCategoryMedium]) return -1.0;
if ([category isEqualToString:UIContentSizeCategoryLarge]) return 0.0;
if ([category isEqualToString:UIContentSizeCategoryExtraLarge]) return 2.0;
if ([category isEqualToString:UIContentSizeCategoryExtraExtraLarge]) return 4.0;
if ([category isEqualToString:UIContentSizeCategoryExtraExtraExtraLarge]) return 6.0;
if ([category isEqualToString:UIContentSizeCategoryAccessibilityMedium]) return 8.0;
if ([category isEqualToString:UIContentSizeCategoryAccessibilityLarge]) return 10.0;
if ([category isEqualToString:UIContentSizeCategoryAccessibilityExtraLarge]) return 11.0;
if ([category isEqualToString:UIContentSizeCategoryAccessibilityExtraExtraLarge]) return 12.0;
if ([category isEqualToString:UIContentSizeCategoryAccessibilityExtraExtraExtraLarge]) return 13.0;
return 0;
}
非常感谢任何指导。
【问题讨论】:
标签: ios objective-c swift