IOS UIViewController和UIView的实用汇总
程序员文章站
2022-07-06 13:39:26
文章目录ios 移除特定的子视图或移除所有子视图如果要移除一个 UIView 的所有子视图如果要移动指定类型的视图如果你是想找到某个视图中的一个特定的子视图,并且将其移除,方法如下:拓展:此外整理删除例ios 移除特定的子视图或移除所有子视图如果要移除一个 UIView 的所有子视图for(UIView *view in [self.view subviews]){[view removefromsuperview];}如果要移动指定类型的视图for(UIView *mylabelvie...
文章目录
ios 移除特定的子视图或移除所有子视图
如果要移除一个 UIView 的所有子视图
for(UIView *view in [self.view subviews])
{
[view removefromsuperview];
}
如果要移动指定类型的视图
for(UIView *mylabelview in [self.view subviews])
{
if ([mylabelview isKindOfClass:[UILabel class]]) {
[mylabelview removeFromSuperview];
}
}
如果你是想找到某个视图中的一个特定的子视图,并且将其移除,方法如下:
//依次遍历self.view中的所有子视图
for(id tmpView in [self.viewsubviews])
{
//找到要删除的子视图的对象
if([tmpView isKindOfClass:[UIImageViewclass]])
{
UIImageView *imgView = (UIImageView *)tmpView;
if(imgView.tag == 1) //判断是否满足自己要删除的子视图的条件
{
[imgView removeFromSuperview]; //删除子视图
break; //跳出for循环,因为子视图已经找到,无须往下遍历
}
}
}
拓展:
- (void)addSubview:(UIView *)view
//添加子视图
- (void)removeFromSuperview
//从父视图中移除
- (void)bringSubviewToFront:(UIView *)view
//移动指定的子视图到最顶层
- (void)sendSubviewToBack:(UIView *)view
//移动制定的子视图到后方,所有子视图的下面
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index
//在指定的位置插入子视图,视图的所有视图其实组成了一个数组
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview
//将指定的子视图移动到指定siblingSubview子视图的前面
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview
//将指定的子视图移动到指定siblingSubview子视图的后面
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2
//交换两子视图的位置
- (BOOL)isDescendantOfView:(UIView *)view
//判断接收对象是否是指定视图的子视图,或与指定视图是同一视图
此外
insertSubview:atIndex: (放到index层,越往下,index越小)
insertSubview:A aboveSubview:B(把前一个ViewA放在后一个ViewB 的上面)
insertSubview:A belowSubview:B(把前一个ViewA放在后一个ViewB 的下面)
整理
bringSubviewToFront: (把一个View放到上面)
sendSubviewToBack:(把一个View放到下面)
exchangeSubviewAtIndex:withSubviewAtIndex:(来修改遮挡。我的理解是view按照控件加进去的顺给了个index,这个index从0开始递增。显示的时候index数值较大控件遮挡数值较小的。 上面这个函数交换两个控件位置)
删除
removeFromSuper view(从父类中删除)
例
BOOL isfound=false;
for (UIView *view in [self.view subviews]) {
if ([view isKindOfClass:[UIPickerView class]]) {
isfound=true;//找到UIPickerView子视图
[self.view bringSubviewToFront:self.pickerView];
}
}
if (!isfound) {//没有子视图则添加
[self.view addSubview:self.pickerView];
}
[self.pickerView removeFromSuperview];
本文地址:https://blog.csdn.net/qq_27597629/article/details/107930022
上一篇: ADV虚拟机使用遇到的问题
推荐阅读
-
详解iOS开发中的转场动画和组动画以及UIView封装动画
-
windows系统的电脑实用快捷键大全和运行程序口令汇总
-
IOS UIViewController和UIView的实用汇总
-
ios的UIView和UIViewController的生命周期
-
ios UIView...可变的圆角和边框,某个角,多个角,设置圆角和边框
-
详解iOS开发中的转场动画和组动画以及UIView封装动画
-
ios SnapKit 约束Unable to simultaneously satisfy constraints 和UIView-Encapsulated-Layout-Height的警告
-
IOS UIViewController和UIView的实用汇总
-
ios的UIView和UIViewController的生命周期
-
iOS UIView和CALayer的区别以及事件传递机制和视图响应链