2014-01-08 48 views
4

我正在嘗試使用可顯示豐富內容的UILabel。爲此,我使用UILabel中的attributedText財產和我使用NSHTMLTextDocumentType分配。如何在UILabel中的段落周圍繪製邊框?

我想實現的一種格式是在段落周圍繪製邊框(用於引號)。正常的文本格式,如字體,粗體,斜體等似乎工作正常,但是當我使用像邊框這樣的CSS屬性時,它不能像我所期望的那樣工作。看照片;僅顯示background-color屬性。

UILabel with HTML

本的UILabel的attributedText屬性是:

<style> 
    body{font:10pt Verdana;} .quote {background-color:#ddd;border:1px solid #aaa;} 
</style> 
<body> 
    <div class="quote">This is a quote</div> 
    <br/> 
    Bla bla bla 
</body> 

我想到的是圍繞第一句子/段落邊框的的UILabel內 - 而不是整個的UILabel邊框。

文本背景顯示,但預期的邊框不顯示。是否有可能實現這一目標?我寧願使用UILabel來保持我的UITableView的速度。

+0

爲什麼你會使用div或段落引用時有blockquote和q元素? – cimmanon

+0

公平點,但無論我用什麼標記用於引用標記,格式都不起作用。 – pojo

+0

NSAttributedString將不支持CSS邊框屬性。 NSattributed字符串僅用於顯示一些富文本格式的內容而不鏈接webview。 – CoolMonster

回答

3

我沒有意識到這一點而在SDK實現的,即使你可以限制到iOS 7,有但至少有兩個常規選項。

在子類UILabel可以使用的NSAttributedString施膠方法,如boundingRectWithSize:options:context:size,計算其中的潛臺詞是出現,並在drawTextInRect:的覆蓋繪製邊框。你可以通過計算前面的文本和附加的子文本的框架來推斷出所需的邊框,然後取出它們的差別。

另一種選擇是設置自定義你的NSAttributedStrings屬性,一些蘋果公司公然鼓勵,從Apple's overview

您可以指定你想在一個範圍內的 任何屬性名稱/值對字符,它是由到您的應用程序來解釋自定義屬性 (請參閱「屬性字符串編程指南」)。

然後在NSAttributedStrings一個子類,覆蓋繪圖方法,如drawInRect:和實施您的自定義屬性按照第一個建議類似的自定義繪製邏輯,否則依靠超。

+0

謝謝!我會給你一些建議。 – pojo

+0

由於它是一個類集羣,因此不推薦子類化NSAttributedString – Ryan

1

據我所知iOS屬性字符串不支持輪廓。你有沒有在iOS或Mac OS上查看過網絡視圖?

+0

如果你指的是文本大綱,那不是我在這裏要求的。但是,不,我發現很難找到有關NSAttributedString + NSHTMLTextDocumentType *支持的信息。 – pojo

-1

嘗試在:和聲明之間添加空格。一些口譯員更喜歡這個。

body { 
    font: 10pt Verdana; 
} 

.quote { 
    background-color: #ddd; 
    border: 1px solid #aaa; 
} 
+0

謝謝,但沒有任何區別。 – pojo

-1

您也可以嘗試到div添加到類和添加的字體屬性是這樣的:

body { 
    font-family: Verdana; 
} 

div.quote { 
    background-color: #ddd; 
    border: 1px solid #aaa; 
    font-size: 10pt; 
} 
0

當我粘貼代碼我調試它顯示了一個邊界。你有沒有嘗試將顏色改變爲更亮的顏色?或者,也許你有其他的CSS在其他地方覆蓋主CSS中的border屬性。如果是這樣,請嘗試使用!important重要的標記來測試或內嵌html標記中的CSS,而不是嵌入。

+0

你在用什麼調試器?我知道HTML標記在瀏覽器中工作 - 這不是問題所在。這是關於如何使它在iOS中的UILabel組件中工作。 – pojo

+0

對不起,我認爲這只是CSS。然後忽略。 – 2014-01-15 17:49:47

4

您使用的是-[NSAttributedString initWithData:options:documentAttributes:error:]

您的問題可能來自於這個限制:

的HTML進口機制是實現類似的降價( 即文本樣式,顏色等),而不是一般的HTML進口。

https://developer.apple.com/library/ios/documentation/uikit/reference/NSAttributedString_UIKit_Additions/Reference/Reference.html#//apple_ref/occ/instm/NSAttributedString/initWithData:options:documentAttributes:error

+0

謝謝!不知何故,我錯過了文檔中的那句話。 – pojo

相關問題