2017-03-16 67 views
0

我在添加时遇到问题请阅读更多/更少中的段落。该文本需要iPod,但不需要iPad。请查看下面的附图。
如何添加段落中的阅读更多/更少使用Swift 3?

enter image description here


第一个问题是,在我点击“更多”按钮,则在左上角空间。当我点击阅读更多按钮时,标签将变为顶部,并且没有空间

秒问题是更多按钮不需要如果设备是iPad的因为屏幕尺寸大,所有的文字都是表演。
对于iPod,它需要有那个按钮。

enter image description here


这里是我的代码。

func getLabelHeight(text: String, width: CGFloat, font: UIFont) -> CGFloat { 
    let lbl = UILabel(frame: .zero) 
    lbl.frame.size.width = width 
    lbl.font = font 
    lbl.numberOfLines = 0 
    lbl.text = text 
    lbl.sizeToFit() 

    return lbl.frame.size.height 
} 

@IBAction func btnReadMore(_ sender: Any) { 
    if isLabelAtMaxHeight { 
     btnReadmore.setTitle("Read more", for: .normal) 
     isLabelAtMaxHeight = false 
     lblReviewHeight.constant = 93 
    } 
    else { 
     btnReadmore.setTitle("Read less", for: .normal) 
     isLabelAtMaxHeight = true 
     lblReviewHeight.constant = getLabelHeight(text: lblReview.text!, width: view.bounds.width, font: lblReview.font) 

    } 

} 

如何检查这个时候读按钮需要与否?请帮帮我。我不想添加任何其他库文件。

回答

0

可以识别使用下面的代码的设备(从here得到它)

import UIKit 

public extension UIDevice { 

    var modelName: String { 
     var systemInfo = utsname() 
     uname(&systemInfo) 
     let machineMirror = Mirror(reflecting: systemInfo.machine) 
     let identifier = machineMirror.children.reduce("") { identifier, element in 
      guard let value = element.value as? Int8, value != 0 else { return identifier } 
      return identifier + String(UnicodeScalar(UInt8(value))) 
     } 

     switch identifier { 
     case "iPod5,1":         return "iPod Touch 5" 
     case "iPod7,1":         return "iPod Touch 6" 
     case "iPhone3,1", "iPhone3,2", "iPhone3,3":  return "iPhone 4" 
     case "iPhone4,1":        return "iPhone 4s" 
     case "iPhone5,1", "iPhone5,2":     return "iPhone 5" 
     case "iPhone5,3", "iPhone5,4":     return "iPhone 5c" 
     case "iPhone6,1", "iPhone6,2":     return "iPhone 5s" 
     case "iPhone7,2":        return "iPhone 6" 
     case "iPhone7,1":        return "iPhone 6 Plus" 
     case "iPhone8,1":        return "iPhone 6s" 
     case "iPhone8,2":        return "iPhone 6s Plus" 
     case "iPhone9,1", "iPhone9,3":     return "iPhone 7" 
     case "iPhone9,2", "iPhone9,4":     return "iPhone 7 Plus" 
     case "iPhone8,4":        return "iPhone SE" 
     case "iPad2,1", "iPad2,2", "iPad2,3", "iPad2,4":return "iPad 2" 
     case "iPad3,1", "iPad3,2", "iPad3,3":   return "iPad 3" 
     case "iPad3,4", "iPad3,5", "iPad3,6":   return "iPad 4" 
     case "iPad4,1", "iPad4,2", "iPad4,3":   return "iPad Air" 
     case "iPad5,3", "iPad5,4":      return "iPad Air 2" 
     case "iPad2,5", "iPad2,6", "iPad2,7":   return "iPad Mini" 
     case "iPad4,4", "iPad4,5", "iPad4,6":   return "iPad Mini 2" 
     case "iPad4,7", "iPad4,8", "iPad4,9":   return "iPad Mini 3" 
     case "iPad5,1", "iPad5,2":      return "iPad Mini 4" 
     case "iPad6,3", "iPad6,4", "iPad6,7", "iPad6,8":return "iPad Pro" 
     case "AppleTV5,3":        return "Apple TV" 
     case "i386", "x86_64":       return "Simulator" 
     default:          return identifier 
     } 
    } 

} 

//斯威夫特3 让MODELNAME = UIDevice.current.modelName

然后你就可以使用,如果,否则。 。

if(modelName == iPad 3 || modelName == iPad 4 ||modelName == iPad Air){ 

    // No Read More button 

}else{ 
    // Add Read More button 
} 
相关问题