Swift 如何添加Show More/Show Less UIButton以控制UITextView
我正在使用UITextView显示一些内容。在textView下面,我添加了一个UIButton,可以控制textView是否显示部分或全部内容 理想情况下,当点击按钮时,TextView将扩展其高度以适应内容的长度Swift 如何添加Show More/Show Less UIButton以控制UITextView,swift,uibutton,uitextview,Swift,Uibutton,Uitextview,我正在使用UITextView显示一些内容。在textView下面,我添加了一个UIButton,可以控制textView是否显示部分或全部内容 理想情况下,当点击按钮时,TextView将扩展其高度以适应内容的长度 我还没有找到一个好的解决办法。我想知道我是否应该使用UIlabel而不是textView。你可以这样做: 1。在情节提要中添加UITextView和UIButton。 2。如果您使用的是自动布局约束,请将输出设置为UITextView高度。 3。在ViewController类
我还没有找到一个好的解决办法。我想知道我是否应该使用UIlabel而不是textView。你可以这样做: 1。在情节提要中添加UITextView和UIButton。 2。如果您使用的是自动布局约束,请将输出设置为UITextView高度。 3。在ViewController类中,将插座设置为: @IBOutlet var txtView:UITextView @IBOUTLE var btn_显示:UIButton @IBOUTLE var textView\U HeightConstraint:NSLayoutConstraint 4。根据UITextView中的文本,创建一个可以为您提供UITextView高度的方法。 5。单击按钮: 6。如果不使用AutoLayoutConstraints,只需单击UIButton更改UITextView的帧(高度)。不需要“
textView\u HeightConstraint
”
它很容易实现。遵循以下步骤:1。创建具有静态高度的UITextView,并在textview底部添加“Showmore”按钮。2.单击UIExtView按钮更改UIExtView的高度。根据其中的文本更改高度,然后更新按钮的框架。将butto的标题改为“Showless”。这真是太好了。谢谢你的帮助!欢迎。:)如果需要任何帮助,请告诉我。
func getRowHeightFromText(strText : String!) -> CGFloat
{
let textView : UITextView! = UITextView(frame: CGRect(x: self.txtView.frame.origin.x,
y: 0,
width: self.txtView.frame.size.width,
height: 0))
textView.text = strText
textView.font = UIFont(name: "Fira Sans", size: 16.0)
textView.sizeToFit()
var txt_frame : CGRect! = CGRect()
txt_frame = textView.frame
var size : CGSize! = CGSize()
size = txt_frame.size
size.height = 50 + txt_frame.size.height
return size.height
}
@IBAction func showMore_Button_Clicked(_ sender: UIButton)
{
if sender.tag == 0
{
let height = self.getRowHeightFromText(strText: self.txtView.text)
self.textView_HeightConstraint.constant = height
self.view.layoutIfNeeded()
btn_Show.setTitle("ShowLess", for: .normal)
sender.tag = 1
}
else
{
self.textView_HeightConstraint.constant = 116
self.view.layoutIfNeeded()
btn_Show.setTitle("ShowMore", for: .normal)
sender.tag = 0
}
}
@IBAction func showMore_Button_Clicked(_ sender: UIButton)
{
if sender.tag == 0
{
let height = self.getRowHeightFromText(strText: self.txtView.text)
self.txtView.frame = CGRect(x: self.txtView.frame.origin.x, y: self.txtView.frame.origin.y, width: self.txtView.frame.size.width, height: height)
btn_Show.setTitle("ShowLess", for: .normal)
sender.tag = 1
}
else
{
self.txtView.frame = CGRect(x: self.txtView.frame.origin.x, y: self.txtView.frame.origin.y, width: self.txtView.frame.size.width, height: 116)
btn_Show.setTitle("ShowMore", for: .normal)
sender.tag = 0
}
}