1

我有一个UITextView包含一些填充整个宽度而不会溢出的文本。

UITextView通过在块动画中更改其框架来减小它的宽度,这样减小的宽度会导致文本溢出并用ellipsis('...')替换结尾。

目前,文本不能平滑地响应宽度的变化。它从全宽大小写跳到截断的“...”大小写之间,中间没有任何内容,当动画回到全宽时也是如此。

是否可以强制文本更改并ellipsis在框架动画时平滑地引入/删除?

4

1 回答 1

1

您应该在这里使用答案:UITextView animating change of frame does not animate text reallocation

textviews 中的文本并不总是按预期运行。为此,您必须设置一个 NSTimer 并在每个刻度上设置帧大小。做类似的事情

textview.frame = CGRectMake (textview.frame.origin.x, textview.frame.origin.y,   textview.frame.size.width-1, textview.frame.size.height-1);

然后当它完成后,我会从 superview 中完全删除 textview 并将其设置为 nil,然后初始化一个新的。这样做的原因是当由于某种原因更改文本视图的框架时,会在文本框周围添加填充。除非您将框架更改至少 100 次,否则您不会注意到它。

[textview removeFromSuperview];
textview = nil;
textview = [[UITextView alloc] initWithFrame:CGRectMake(x, y, width, height)];
textview.text = yourTextString;
//You will also have to set whatever non default properties you want, such as text or background color
[view addSubview:textview];
于 2013-09-24T13:46:31.303 回答