0

我有一个可拖动的 UIImageView,它有时会更改为另一个 UIImageView 框架。问题是我需要在第一个 UIImageView 中使用相同的点击点进行转换。我只是这样做:

_firstImageView.frameSize = _secondImageView.frameSize;

但是框架从 _firstImageView 原点发生了变化。我需要从我在 _firstImageView 中单击的点进行转换:

CGPoint clickedPoint = [sender locationInView:self.view];

我试过 layer.anchorPoint 但这会使 imageView 消失,不知道为什么(我首先做了一个从 self.view 到 _firstImageView 参考系统的转换点)

编辑例如为了更好地解释问题:

我有一个高度为 100 的 uiimage1 框架。另一个高度为 50。如果我单击 uiimage1 的点 (y=90) 并开始拖动,我会创建一个测试交叉点,如果相交它将 UIImage1 更改为UIImage2。但由于点击是在 y=90 上且 UIImage2 的最大 y 高度仅为 50,因此它会通过 UIImage1 原点更改帧大小。我继续拖动新框架外的点击点(即只有 y-height=50,点击点为 y=90)。我的问题是:我可以不通过它的起源而是通过点击位置来改变框架吗?

提前致谢

4

1 回答 1

0
+(CGRect)getUpdatedFrame:(CGRect)frame byChangingCenterTo:(CGPoint)newCenter
{
    float width = frame.size.width;
    float height = frame.size.height;
    return CGRectMake(newCenter.x-width/2, newCenter.y-height/2, width, height);
}

+(CGPoint)centerForRect:(CGRect)rect
{
    return CGPointMake( rect.origin.x+rect.size.width/2 , rect.origin.y+rect.size.height/2 );
}
于 2013-06-05T13:34:40.907 回答