【问题标题】:uiview width is zerouiview 宽度为零
【发布时间】:2011-07-03 12:45:47
【问题描述】:

我使用以下代码在我的 uiview 中添加了一个 uigesture

UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scale:)];
[pinchRecognizer setDelegate:self];
[holderView addGestureRecognizer:pinchRecognizer];
[pinchRecognizer release];

调用的代码是

    if([(UIPinchGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded) {

        lastScale = 1.0;
        return;
    }



    CGFloat scale = 1.0 - (lastScale - [(UIPinchGestureRecognizer*)sender scale]);

    CGAffineTransform currentTransform = [(UIPinchGestureRecognizer*)sender view].transform;
    CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, scale, scale);

    [[(UIPinchGestureRecognizer*)sender view] setTransform:newTransform];

    lastScale = [(UIPinchGestureRecognizer*)sender scale];

    OldTransform = newTransform;

    OldCenter = [(UIPinchGestureRecognizer*)sender view].center;

缩放前的问题我可以得到holdview的宽度和高度,但缩放后它返回零

我用下面的代码来显示

NSLog(@" 矩形 %f , %f ,%f, %f ", holderView.frame.origin.x, holderView.frame.origin.y, holderView.bounds.size.width , holderView.bounds.大小.高度);

另一个问题是,当我在其上方添加子视图时,所有值都从 holderview 返回,大小为原点,.. 变为零 任何解决该问题的建议

【问题讨论】:

  • 仅供参考,NSStringFromCGRect
  • 感谢您的信息,您对这个问题有什么建议

标签: iphone ipad uiview


【解决方案1】:

设置视图的变换不会改变其框架属性的值。因此,即使框架报告宽度为 100,由于变换,它在视觉上也可能是 50 或其他任何值。

您的框架宽度为 0 的原因可能是因为您在某个时候将其设置为 0,或者尚未设置它。您需要提供默认大小以使您的视图可见。

【讨论】:

  • 我将它的框架设置为[self.view frame]
猜你喜欢
  • 2015-08-01
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 1970-01-01
  • 2018-04-28
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
相关资源
最近更新 更多