Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Display HTML Code in UITextView and UILabel iOS in Swift 5

 How To Perfect Display HTML Code in UITextView and UILabel iOS in Swift 5

UITextView supports the display of text using custom Style information and also supports text editing. 

You typically use a text view to display multiple lines of text, such as when displaying the body of a large text document. This Class Supports Multiple text styles through use of the attributedText property.

This class supports multiple text styles through use of the attributedText property. (Styled text isn’t supported in versions of iOS earlier than iOS 6.) Setting a value for this property causes the text view to use the style information provided in the attributed String. You can still use the font, textColor, and textAlignment properties to set style attributes, but those properties apply to all of the text in the text view. It’s recommended that you use a text view—and not a UIWebView object—to display both plain and rich text in your app.


#Extension

extension String {

    

    public var convertHtmlToNSAttributedStr: NSAttributedString? {

        guard let data = data(using: .utf8) else {

            return nil

        }

        do {

            return try NSAttributedString(data: data,options: [.documentType: NSAttributedString.DocumentType.html,.characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil)

        }

        catch {

            print(error.localizedDescription)

            return nil

        }

    }


//#Convert to NSAttributedString


  public func convertHtmlToAttributedWithCSS(font: UIFont? , csscolor: String , lineheight: Int, csstextalign: String) -> NSAttributedString? {

        guard let font = font else {

            return convertHtmlToNSAttributedStr

        }

        let modifiedString = "\(self)";

        guard let data = modifiedString.data(using: .utf8) else {

            return nil

        }

        do {

            return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil)

        }

        catch {

            print(error)

            return nil

        }

    }

}



let textStr = """


       

       

       

       


        table {

         font-family: arial, sans-serif;

          border-collapse: collapse;

          width: 100%;

        }

        td, th {

          border: 1px solid #dddddd;

          text-align: left;

          padding: 8px;

        }

        tr:nth-child(even) {

         background-color: #dddddd;

        }

       

       

       

       

HTML Table

       

         

           

           

           

         

         

           

           

           

         

         

           

           

           

         

         

           

           

           

         

         

           

           

           

         

         

           

           

           

         

         

           

           

           

         

       

CompanyContactCountry
Alfreds FutterkisteMaria AndersGermany
Centro comercial MoctezumaFrancisco ChangMexico
Ernst HandelRoland MendelAustria
Island TradingHelen BennettUK
Laughing Bacchus WinecellarsYoshi TannamuriCanada
Magazzini Alimentari RiunitiGiovanni RovelliItaly

       

       


        """


self.bookingPlyText.attributedText = textStr.convertHtmlToAttributedWithCSS(fontmediumWithSize(pointSize: 14), csscolor: "black", lineheight: 5, csstextalign: "left")



Custom Font


func mediumWithSize(pointSize: CGFloat)-> UIFont {

        return UIFont.init(name: "Hallo sans", size: CGFloat(pointSize))!



This post first appeared on IOS Developer Live, please read the originial post: here

Share the post

Display HTML Code in UITextView and UILabel iOS in Swift 5

×

Subscribe to Ios Developer Live

Get updates delivered right to your inbox!

Thank you for your subscription

×