gpt4 book ai didi

objective-c - 更改 UIView 框架时移动元素

转载 作者:行者123 更新时间:2023-12-03 17:38:30 25 4
gpt4 key购买 nike

我有几个 UITextView。每个 TextView 都会改变它在焦点上的大小——它会随着这样的动画增长大约 50 像素:

[UITextView animateWithDuration:.1f animations:^{
CGRect new_frame = textView.frame;
new_frame.size.height += height;
textView.frame = new_frame;
}];

现在我的问题是我需要将 TextViews 移动到焦点下方 50px(显然也有动画)。我想知道如何以最简单的方式做到这一点。我的应用程序只有 iOS6,所以我可以使用自动布局。我尝试过但失败了。我尝试使用 struts 和 springs - 也失败了。

想到的唯一解决方案是将每个元素向下移动 50 px 并带有动画。但这对我来说听起来很便宜。任何想法如何去做?自动布局是否可行?

编辑

以下是我一直在尝试的布局:

Vertical layout

enter image description here

这是单击第一个 TextView 后在模拟器中的样子:

enter image description here

因此正如您所见,它覆盖了下一个 View 并且不保留约束。

最佳答案

不要将框架与自动布局相结合,这会给您带来不可预知的结果。

移除第二个 UITextView 顶部到其父 View 顶部的约束。

然后为 UITextView 的高度约束创建一个导出。

使用下面的代码调整UITextView的高度:

- (void)textViewDidBeginEditing:(UITextView *)textView
{
[UITextView animateWithDuration:.1f animations:^{
self.textViewHeightConstraint.constant +=50;
[self.view layoutIfNeeded];
}];
}

-(void)textViewDidEndEditing:(UITextView *)textView
{
[UITextView animateWithDuration:.1f animations:^{
self.textViewHeightConstraint.constant -=50;
[self.view layoutIfNeeded];
}];
}

关于objective-c - 更改 UIView 框架时移动元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16025034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com