4

我想将视图从滚动视图移动到 uiview。

我无法更改它的中心(或框架),使其保持在屏幕中的相同位置(但在不同的视图中,可能是滚动视图的超级视图)。

我应该如何转换视图的中心/框架?

谢谢你。

编辑:

   CGPoint oldCenter = dragView.center;                                                                         
    CGPoint newCenter = [dragView convertPoint: oldCenter toView: self.navigationView.contentView];    
    dragView.center = newCenter;
    [self.navigationView.contentView addSubview: dragView];

自从我加入以来,我也可以使用(NSSet*)触摸touchesBegan
我很难让它工作,但文档对我来说不是那么清楚。

4

1 回答 1

3

你可以使用convertPoint:toView:UIView 的方法。它用于将点从一个视图的坐标系转换到另一个视图的坐标系。请参阅UIView 类参考的视图坐标系之间的转换部分。还有更多可用的方法。

-编辑-

调用 convertPoint: 方法时使用了错误的点。给定点应该在dragView 的坐标系中,而dragView.center 在其superview 的坐标系中。

使用以下几点,它应该在自己的坐标系中为您提供 dragView 的中心。

CGPoint p;
p = CGPointMake(dragView.bounds.size.width * 0.5, dragView.bounds.size.height * 0.5);
于 2010-12-25T11:34:10.017 回答