计算UIImageView离屏幕右侧的距离

时间:2012-11-16 21:11:19

标签: objective-c ios

我有一个可以移动的UIImageView,我想要做的是计算UIImageView从屏幕右侧拖出的像素数。左边很容易,因为你只需要将原点转换为正数。我需要相同的结果,就像它离开左边一样。

2 个答案:

答案 0 :(得分:2)

如果您正在寻找视图的原点(左上角)距屏幕右侧多远(假设没有多级子视图和超级视图偏移):

float distRight = [[UIScreen mainScreen] size].width - view.origin.x;

如果您希望视图右侧距离屏幕右侧的距离,只需减去视图的宽度:

float distRight = [[UIScreen mainScreen] size].width - view.origin.x - view.frame.size.width;

(但是,来吧,这是非常基本的几何,即使你无法想象它,你应该能够绘制它然后编码...)

答案 1 :(得分:0)

此代码未经测试,但应提供调用方法,您将找到右侧或左侧偏移量。

-(float)isOffScreenToLeft{
float distFromLeftEdge = [[UIScreen mainScreen] size].width - imgview.origin.x;

if(distFromLeftEdge < 0){
NSLog("Offscreen to left %f pixels.", fabs(distFromLeftEdge));
return fabs(distFromLeftEdge));
}


-(float)isOffScreenToRight{
float rightEdgePosition = ([[UIScreen mainScreen] size].width - imgview.origin.x) + imgview.frame.size.width;
float distFromRightEdge = [[UIScreen mainScreen] size].width - rightEdgePosition

//If ipad in portrait
if(distFromRightEdge < 0){
NSLog("Offscreen to right %f pixels.", fabs(distFromRightEdge));
return fabs(distFromLeftEdge);
}