当前位置: 代码迷 >> Iphone >> 新手求教怎么代码实现UIView,同时使得里面的控件能够显示正常
  详细解决方案

新手求教怎么代码实现UIView,同时使得里面的控件能够显示正常

热度:28   发布时间:2016-04-25 06:01:46.0
新手求教如何代码实现UIView,同时使得里面的控件能够显示正常
我要实现在界面上有一个UIView随着上面的那个UIView的高度改变而往下移,实现过程中出现了许多的问题。下面是我的界面布局:

第一个红框是那个会伸缩的UIView,我要向里面添加一些数据,会出现多行,所以它的高度会变大。
下面这个框是一个UIView,这个UIView里面包含了框住的那些控件,它应该是要随着上面的那个UIView的高度改变而往下移的。
我写的一段代码实现了让下面的UIView往下移,但是它移动后,里面的控件都变形且位移了。下面是我写的下移UIView的代码:

// 首先获取UIView的原始frame
CGRect rect = self.infoView.frame;
// 将这个UIView从视图中移出
[self.infoView removeFromSuperview];
// 改变它的y坐标
CGFloat infoY = self.numView.frame.size.height + self.numView.frame.origin.y + 8.0f;
rect.origin.y = infoY;
self.infoView.frame = rect;
// 将更改了y坐标后的UIView重新添加到视图中
[self.myScroll addSubview:self.infoView];


下面是没有添加这段代码的运行出来的效果,可以看出部分空间内重叠了:


接下来是添加了代码后运行出来的效果,可以看出下移了的那个UIView中的控件都变形而且位移了:


这些控件的低层是一个ScrollView,当下移得很多,移出了界面时,我的ScrollView好像也无效了,不可以上下滚动了。
该问题急待解决啊!!!求各位大神指教啊!!!

------解决方案--------------------
你可以直接移view的位置,比如说center ....完全没必要把它removeFromSuperView再add..
------解决方案--------------------
可以看出你的scrollView横向是可以移动的,而且设定了View的autosizing模式,否则不会发生变形。
而且可能你所说的view原来不属于scrollview的子View
你得重新规划一下画面结构。
还有不用删除了再添加,直接修改Frame就好了。
然后view向下移动时,别忘了改变scrollView的contentsize,否则就会导致你所说的scrollView不起作用


------解决方案--------------------
正常肯定是可以的,至于你的为什么不行。
很抱歉,凭你的描述确实分析不出来。
不要直接改变viewcontroller的view为scrollview。这样做,动做好像是不正常的。
应该在view上再加一个scrollview