在UITextView Objective-C内的文本末尾添加更多按钮?

时间:2015-10-12 19:14:32

标签: ios objective-c parse-platform uibutton uitextview

我正在尝试执行与此链接http://www.oracle.com/webfolder/ux/mobile/pattern/img/expand-collpase-description.png

中类似的操作

单击“更多”按钮时展开UITextView内的内容。我正在viewDidLoad中创建按钮,如下所示

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

我在从PFQuery

加载数据后在UITextView中设置按钮的框架
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中添加更多按钮?此外,我创建了一个约束,以便在单击更多按钮时增加其高度,但我无法将约束的高度增加到超过某个阈值大小。

2 个答案:

答案 0 :(得分:2)

我正在做同样的事情。只需将按钮添加到textView.superView,因为textView是scrollView。在textView中使用button的rect作为
textView.textContainer.exclusionPaths = [UIBezierPath(rect: rect)]

最后,我做到了。最重要的是recttextView.frame必须包含

答案 1 :(得分:0)

我不确定Apple是如何实现它的,但我几乎可以保证它不是UITextView的子视图。我将如何实现此功能将为UITextView设置自定义容器视图。设置容器的默认高度,然后如果UITextView的高度大于容器视图的高度,则在右侧(或左侧,或右上方或任何您想要的位置)显示更多 UIButton 左下角似乎是最有意义的,它只是动画容器视图的高度以适应UITextView。

如果您真的想在textview中完成所有操作,我想您必须将其子类化以提供这种自定义功能,但是其他人可能知道如何在不对UITextView进行子类化的情况下完成所有操作。我的方法将是上述方法。