2015-10-12 85 views
2

我想點擊按鈕「更多」什麼時候做一個類似的東西在這個環節http://www.oracle.com/webfolder/ux/mobile/pattern/img/expand-collpase-description.png在UITextView Objective-C中的文本末尾添加更多按鈕?

擴展一個UITextView裏面的內容。我在我viewDidLoad中創建按鈕像PFQuery

加載數據
PFQuery *query = [PFQuery queryWithClassName:self.restaurantName]; 
    [query whereKey:@"ItemName" equalTo:self.item_name]; 

    [query getFirstObjectInBackgroundWithBlock:^(PFObject *itemDataObj, NSError *error) { 
     if (!error) { 

      self.detailPriceView.text = [itemDataObj objectForKey:@"PriceDetail"]; 

      self.detailPriceView.text = [self.detailPriceView.text substringToIndex:40]; 

      [button setFrame:self.detailPriceView.frame]; 
} 
}]; 

如何在裏面的UITextView添加更多按鈕後,下面

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[button setTitle:@"more" forState:UIControlStateNormal]; 
[self.detailPriceView addSubview:button]; 

我設置的UITextView內的按鈕的框架文字的結尾?另外我創建了一個約束來增加它的高度,當更多的按鈕被點擊時,但我無法增加約束的高度超過一定的閾值大小。

回答

0

我不確定蘋果是如何實現它的,但我幾乎可以保證它不是UITextView的子視圖。我將如何實現此功能將爲UITextView設置自定義容器視圖。設置容器的默認高度,然後如果UITextView的高度大於容器視圖的高度,則在右側(或左側,右上角或任意位置)顯示更多UIButton,左下角似乎使最有意義),它簡單地爲容器視圖設置動畫高度以適應UITextView。

如果你真的想在一個textview中完成所有的工作,我想你必須繼承它以提供這種自定義功能,但其他人可能知道一種方法來完成這一切,而不需要繼承UITextView。我的方法將是上面描述的方法。

+0

謝謝比爾。我會試着看看我是否可以通過擴展UITextView來實現。但是,我如何在字符串文本的末尾附加一個按鈕?任何想法 ? –

+0

拍攝回答:不要。創建一個包含文本視圖和按鈕的視圖,並在視圖控制器中添加邏輯,該視圖控制器根據文本視圖中當前包含的文本的寬度定位按鈕。 –

2

我正在做同樣的事情。只需將該按鈕添加到textView.superView,因爲textView是scrollView。在textView中使用按鈕的矩形作爲
textView.textContainer.exclusionPaths = [UIBezierPath(rect: rect)]

最後,我做到了。最重要的是rect必須是包括textView.frame

+0

供別人參考:'let rect = button.frame' –

+0

'button.frame'應該轉換爲'textView'的協調。 @JustinVallely –

+0

確實應該。接得好。我在故事板中放置了按鈕,所以我已經在這個座標空間中了。感謝您補充說明。 –