iOS判断一个View是否显示在屏幕上

有时候做UI的时候,比如需要判断scrollView中一个btn是否显示在屏幕上,可以用以下代码:

#pragma mark - 返回一个View所在的位置x,y,是否在rect坐标里面
- (BOOL)isInScreenView:(UIView *)inView withRect:(CGRect)rect{
    return CGRectIntersectsRect(inView.frame, rect);
}
#pragma mark - 返回判断screenRect所在的位置x,y,是否在rect坐标里面
- (BOOL)isInScreenRect:(CGRect)screenRect withRect:(CGRect)rect{
    return CGRectIntersectsRect(screenRect, rect);
}

非常简单吧~~

可以用它来做一些判断瀑布流的item是否在当前展示的位置,tableView中的展示的cell等等

时间: 2024-10-18 19:09:44

iOS判断一个View是否显示在屏幕上的相关文章

iOS判断UIView是否显示在屏幕上

转载 请注明出处:ALDRIDGE1的专栏 头文件: /*****************************************************  *  MIT Licence  *    *  Author: __承_影__  *  *  Date:   2015.2.10  *  ****************************************************/ @interface UIView (UIScreenDisplaying) // 判断

Linux more(功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上)

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 .more命令从前向后读取文件,因此在启动时就加载整个文件. 1.命令格式: more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 2.命令功能: more命令和cat的功能一样都

JAVA基础-输入输出:1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上。

1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上. package Test03; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOExceptio

编程题:功能:将5个学生记录输入文件d:\stu1.txt中,并且显示在屏幕上。

编程题:文件读写fprintf().fscanf()使用,功能:将5个学生记录输入文件d:\stu1.txt中,并且显示在屏幕上. #include<stdio.h> void main() { FILE *fp;long num;int n,score;char name[20]; int N=5; fp=fopen("d:\\s tu1.txt","w"); for(n=1;n<=N;n++) { scanf("%s%10ld%d&q

如何判断一个C++对象是否在堆上(通过GetProcessHeaps取得所有堆,然后与对象地址比较即可),附许多精彩评论

在帖子如何判断一个C++对象是否在堆栈上 中, 又有人提出如何判断一个C++对象是否在堆上. 其实我们可以参照那个帖子的方法类似实现,我们知道堆就是Heap,在windows上我们可以通过GetProcessHeaps来得到所有的堆句柄,而我们这里只要知道Windows上的Heap Handle,其实就是堆的起始地址,就可以写如下代码了. #include <iostream>#include <windows.h> using namespace std; BOOL IsObje

如何判断一个C++对象是否在堆栈上(通过VirtualQuery这个API来获取堆栈的起始地址,然后就可以得到答案了),附许多精彩评论

昨天有人在QQ群里问到如何判断一个C++对象是否在堆栈上, 我在网上搜索了下, 搜到这个么一个CSDN的帖子http://topic.csdn.net/t/20060124/10/4532966.html ,可惜它也没有给出一个合适的答案. 要解答这个问题,其实就是要知道的堆栈的起始地址, 而我们知道堆栈其实就是一段有相同属性的内存页面,而Windows也是有API让我们查询虚拟内存的页面分配情况的.所有我们可以通过VirtualQuery这个API来获取堆栈的起始地址,然后就可以得到答案了.

C语言之文件操作——输出文本文件中的内容显示在屏幕上

//文本文件的输出 /* =============================================================== 题目:输出文本文件中的内容显示在屏幕上! =============================================================== */ #include<stdio.h> #include<string.h> void main() { FILE *fp; char ch; fp=fopen

设置退出 vim 之后不将内容显示在屏幕上

使用 vim 查看文件,退出之后文件内容还是留在屏幕上干扰阅读,我们要把 terminal 的环境变量设置成 Xterm

《编写一个程序,从一个文件中读出字符串,并显示在屏幕上》

注意:在程序的第11行用fgets函数读入字符串时,指定一次读入10个字符,但按fgets函数的规定, 如果遇到“\n”就结束字符串输入,“\n”作为最后一个字符也读入到字符数组中 //编写一个程序,从f:\\FILE_1\\file_2.txt中读回字符串 #include<stdio.h>#include<string.h>#include<stdlib.h>int main(){ FILE *fp; char str[3][10]; int i=0; if((fp