2017-01-25 18 views
0

我使用的第三方庫ExpandableLabel實施看到更多功能。我正在尋找只包含標籤中的文本而不是按鈕的swift解決方案,因此這種方法非常完美。在IB加入庫和更改標籤類型後,我只需要幾行代碼:「看不到」的ExpandableLabel的iOS

@IBOutlet weak var myLabel: ExpandableLabel! 

myLabel = 3 
myLabel = true 

我卻無法弄清楚如何實現「少看」之後,已完全展開。我加了委託方法:

ExpandableLabelDelegate 

和功能: // MARK:ExpandableLabel代表

func willExpandLabel(_ label: ExpandableLabel) { 

} 

func didExpandLabel(_ label: ExpandableLabel) { 

} 

func willCollapseLabel(_ label: ExpandableLabel) { 

} 

func didCollapseLabel(_ label: ExpandableLabel) { 

} 

func shouldCollapseLabel(_ label: ExpandableLabel) -> Bool { 
    return true 
} 

,試圖獲取過程的控制,但仍然有掙扎。有沒有其他人設法得到這個權利?如果是這樣,請你可以幫我在這裏...

+0

你描述不清楚,而且代碼不完整,你能否更新更多細節?也許你可以檢查演示(https://github.com/apploft/ExpandableLabel/tree/master/ExpandableLabelDemo)瞭解更多關於使用的細節。 – Phillip

+0

我想要做的是,一旦標籤展開,創建一個「see less」按鈕,就像「see more」一樣,使標籤能夠恢復到之前單擊「see more」 。基本上只是扭轉過程。 – AMAN77

+0

我認爲你可以創建一個存儲崩潰狀態的模型,並且在委託方法中可以檢查狀態以更改標籤的摺疊/展開狀態。希望它能幫助你。 – Phillip

回答

0

根據我的個人經驗,我注意到expandedAttributedLink只有在您將其設置在實際標籤文本之前時才起作用。

infoLabel.setLessLinkWith(lessLink: "less", attributes: [NSFontAttributeName: boldItalicFont], position: nil) 
infoLabel.text = viewModel.description 
infoLabel.collapsedAttributedLink = NSAttributedString(string: "more", attributes: [NSFontAttributeName: boldItalicFont]); 
infoLabel.ellipsis = NSAttributedString(string: "...") 
infoLabel.collapsed = true 

我能夠通過看裏面the source filetext setter方法來識別這種行爲。