如何确定控件是否在iOS中的显示区域内?
例如:
有一个UILabel,它会从屏幕的右边滑到左边,直到它从屏幕上滑落到边框的左边,我该如何确定它是否滑出了它的边框?
我使用动画块模型。当动画完成时,我们可以确保标签已经超过0;
现在我要删除标签。
例如:
[UIView animateWithDuration:5.5
delay:0.1
options: UIViewAnimationOptionCurveLinear | UIViewAnimationOptionRepeat
animations:^
{
[UIView setAnimationRepeatCount:3];
CGRect lsframe = labelShow.frame;
lsframe.origin.x = 0;
lsframe.origin.y = dphv.mImgContent.frame.origin.y;
lsframe.size.width = 8;
lsframe.size.height = imgH;
CGRect frame = labelShow.frame;
frame.origin.x = 600;
labelShow.frame = frame;
frame = labelShow.frame;
frame.origin.x = -180;
labelShow.frame = frame;
}
completion:^(BOOL finished)
{
NSLog(@"animation finished");
labelShow = nil; //but this line has error, how can I do this;
}];我使用这个例子,但是这个例子有一个非常严重的问题,导致内存增加,甚至超过100米,但我不知道如何修复改革。这是网址:https://github.com/yinkou/OBaconView
发布于 2014-07-18 21:37:00
标签有一个frame属性,它让您知道它在其superview中的位置。superview有一个bounds属性,可以让您知道内容在哪里。使用这些属性,您可以检查标签的框架是否在superview的范围内。
发布于 2014-07-18 21:35:49
检查是否为移动的标签设置了for .源.x参数。假设父视图的x参数与屏幕的x= 0对齐,标签的x值将小于0,您的标签就不在视图中了。
发布于 2014-07-18 21:48:36
还可以使用-convertRect:toView:方法查找视图落入视图控制器视图的位置。使用从方法返回的rect,检查是否有任何角落在主视图中。
https://stackoverflow.com/questions/24834081
复制相似问题