本文主要是介绍ScrollView 往上滑动,里面的一个View停在某个位置的思路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.scrollView的contentoffset 为view的左上角,减去此时scrollView的左上角
2.而且还不需要让那个红色的view removeFromSuperView ,直接self.view AddSubView 就会自动从原来的那个View脱离开来
3.以后遇到问题的思路。当发现UIView很许多奇特的效果的时候,思考它是不是在不断的改变父控件。
#pragma mark - <UIScrollViewDelegate>
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat imageH = self.imageView.frame.size.height;
CGFloat offsetY = scrollView.contentOffset.y;
if (offsetY >= imageH) {
// 将红色控件添加到控制器的view中,设置Y值为0
CGRect redF = self.redView.frame;
redF.origin.y = 0;
self.redView.frame = redF;
[self.view addSubview:self.redView];
} else {
// 将红色控件添加到scrollView中,设置Y值为图片的高度
CGRect redF = self.redView.frame;
redF.origin.y = 140;
self.redView.frame = redF;
[self.scrollView addSubview:self.redView];
}
// if (offsetY < 0) {
// CGFloat scale = 1 - (offsetY / 70);
// self.imageView.transform = CGAffineTransformMakeScale(scale, scale);
// }
CGFloat scale = 1 - (offsetY / 70);
scale = (scale >= 1) ? scale : 1;
self.imageView.transform = CGAffineTransformMakeScale(scale, scale);
}
4.在storyboard中 添加scrollView的约束时候必须告诉scrollView的contentSize是多少,否则的话,会爆红。
ScrollView xib上的自动布局
- 子控件的尺寸`不能通过UIScrollView`来计算,可以考虑通过以下方式计算
- 可以设置`固定值`(width==100,height==300)
- 可以相对于`UIScrollView以外的其他控件`来计算尺寸
- UIScrollView的`frame`应该通过`子控件以外的其他控件`来计算
- UIScrollView的`contentSize`通过子控件来计算
- 根据`子控件的尺寸`以及`子控件与UIScrollView之间的间距`
这篇关于ScrollView 往上滑动,里面的一个View停在某个位置的思路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!