Ios 不按原点更改帧
我有一个可拖动的UIImageView,它在某个点上会更改为另一个UIImageView帧。问题是我需要使用第一个UIImageView中相同的点击点进行转换。我只是这样做:Ios 不按原点更改帧,ios,frame,Ios,Frame,我有一个可拖动的UIImageView,它在某个点上会更改为另一个UIImageView帧。问题是我需要使用第一个UIImageView中相同的点击点进行转换。我只是这样做: _firstImageView.frameSize = _secondImageView.frameSize; 但是帧从_firstImageView原点更改。我需要从我在firstImageView中单击的点进行转换: CGPoint clickedPoint = [sender locationInView:self
_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)。我的问题是:我可以不通过原点而是通过点击点的位置来改变框架吗
提前谢谢你能说得更清楚些吗?你想让firstimageview不改变原点,而只具有与secondimageview相同的宽度和高度吗?我编辑了这个问题。谢谢你们,但问题已经解决了。以上两种方法可以帮助你们
+(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 );
}