2017-03-16 6 views
0

続きを読む/ lessテキストを段落に追加する際に問題があります。そのテキストはiPodでは必要ですが、iPadは必要ありません。下の添付画像をご覧ください。
追加方法Swift 3でパラグラフに続きますか?

enter image description here


最初の問題は、私はボタン「続きを読む」をクリックする前に、左上隅にスペースがあるということです。 Read Moreボタンをクリックすると、ラベルはになり、スペースはありませんです。

第二の問題はそれは画面サイズが大きいと、すべてのテキストが表示されるので、デバイスがiPadのある場合を必要としないもっとボタンを読んでいます。
の場合は、そのボタンが必要です。ここで

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) 

    } 

} 

Readボタンが必要かそうでないとき、どのように私はこれを確認することができますか?私を助けてください。私は他のライブラリファイルを追加したくありません。

答えて

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 
} 
関連する問題