Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone ScrollViewDidScroll setTransform和帧高度未设置_Iphone_Uiscrollview_Transform - Fatal编程技术网

Iphone ScrollViewDidScroll setTransform和帧高度未设置

Iphone ScrollViewDidScroll setTransform和帧高度未设置,iphone,uiscrollview,transform,Iphone,Uiscrollview,Transform,我试图在代理方法中更改imageView的变换和帧。由于某些原因,帧y更改设置完美,但未应用高度调整和变换。这是什么原因?这是我的代码(所有值都设置正确,所有属性都有效且正确): -(无效)scrollViewDidScroll:(UIScrollView*)scrollView{ CGFloat offset=[scrollView contentOffset].y+[scrollView contentInset].top; CGFloat位置变化=最大(偏移量,0)*0.7; CGFloa

我试图在代理方法中更改imageView的变换和帧。由于某些原因,帧y更改设置完美,但未应用高度调整和变换。这是什么原因?这是我的代码(所有值都设置正确,所有属性都有效且正确):

-(无效)scrollViewDidScroll:(UIScrollView*)scrollView{
CGFloat offset=[scrollView contentOffset].y+[scrollView contentInset].top;
CGFloat位置变化=最大(偏移量,0)*0.7;
CGFloat高度变化=0.0;
如果(偏移<0.0)高度变化+=-偏移;
[[self-coverImageView]setTransform:CGAffineTransformMakeTransform(0,位置更改)];
[[self-coverImageView]setFrame:CGRectMake([[self-coverImageView]frame]。原点.x,64-位置更改,[[self-coverImageView]frame]。大小.宽度,120+高度更改)];
NSLog(@“%f%f%f”,偏移量,位置变化,高度变化);
}

位置和高度变化变量都是完美的,并且会相应地变化。确保此方法在主线程上运行也不会改变任何内容。

您的代码是正确的。事实上,当你向下拖动scrollView时,它正确地转换了ImageView的origin.Y和Height。我知道代码很好,但实际上它并没有这样做。Y值在滚动时显示调整,但高度在屏幕上根本没有变化。真的很困惑。我运行了相同的代码,它也改变了高度。
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {

    CGFloat offset = [scrollView contentOffset].y + [scrollView contentInset].top;

    CGFloat positionChange = MAX(offset, 0) * 0.7;
    CGFloat heightChange = 0.0;
    if (offset < 0.0) heightChange += -offset;

    [[self coverImageView] setTransform:CGAffineTransformMakeTranslation(0, positionChange)];
    [[self coverImageView] setFrame:CGRectMake([[self coverImageView] frame].origin.x, 64 - positionChange, [[self coverImageView] frame].size.width, 120 + heightChange)];

    NSLog(@"%f %f %f",offset, positionChange, heightChange);

}