Objective c UITextView未正确调整大小
我有一个视图,上面有一个表视图,下面有一个滚动视图。 当我按下resize bar按钮项时,我想隐藏表格视图并最大化滚动视图。我让滚动视图和表格视图正确地设置了动画,但我正在尝试调整滚动视图内的Objective c UITextView未正确调整大小,objective-c,ios,xcode,uitextview,Objective C,Ios,Xcode,Uitextview,我有一个视图,上面有一个表视图,下面有一个滚动视图。 当我按下resize bar按钮项时,我想隐藏表格视图并最大化滚动视图。我让滚动视图和表格视图正确地设置了动画,但我正在尝试调整滚动视图内的UITextView的大小,以利用额外的屏幕空间 每当我计算调整大小时,UITextView就会出现在屏幕的左上角,我不知道为什么。我甚至没有修改X和Y,只是修改了高度 CGRect newDesFrame = descriptionTextView.bounds; newDesFrame.size.he
UITextView
的大小,以利用额外的屏幕空间
每当我计算调整大小时,UITextView
就会出现在屏幕的左上角,我不知道为什么。我甚至没有修改X和Y,只是修改了高度
CGRect newDesFrame = descriptionTextView.bounds;
newDesFrame.size.height = newDesFrame.size.height + tableViewFrame.size.height;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.5];
self.scrollView.frame = scrollFrame;
self.descriptionTextView.frame = newDesFrame;
[UIView commitAnimations];
我不知道为什么会这样。
descriptionTextView.bounds
是否因为位于UIView
中的UIScrollView
中而变得混乱?看起来,当我对滚动视图的X和Y进行NSLog时,它是0,0。这很奇怪,因为它在superview或视图中不在0,0。如何修复此问题?发生这种情况是因为您正在执行
self.descriptionTextView.frame=newDesFrame(这是Bounds属性,不是frame!!了解差异)
解决方案:
self.descriptionTextView.bounds=newDesFramedescriptionTextView很可能跳到左上角,因为实际上您正在更改原点(x和y)。您将从以下内容开始:
CGRect newDesFrame = descriptionTextView.bounds;
获取该文本视图的边界将为您提供一个原点为0,0的CGRect,因为“边界”将为您提供视图在其自身的局部坐标空间中的矩形
请尝试以下方法:
CGRect newDesFrame = descriptionTextView.frame;
这将为您提供视图在superview坐标空间中的矩形,包括实际原点。太棒了!谢谢你的解释。我想我不应该混合使用边界和帧。这样调整大小比使用两个边界都好。@Bodgan非常感谢您!我会阅读你提供的链接。再次感谢!