首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

即使在从superview中删除begin之后,UIView也会重新出现

在iOS开发中,UIView是用于构建用户界面的基本组件之一。当我们在代码中将一个UIView从其superview中删除时,即使在删除之后,UIView仍然存在于内存中,并且可以重新添加到视图层次结构中。

这是因为UIView的删除只是从视图层次结构中移除了该视图,并没有销毁该视图对象。当我们删除一个UIView时,它仍然存在于内存中,保留其属性和状态。因此,我们可以随时将其重新添加到视图层次结构中,使其重新显示在屏幕上。

这种行为在某些情况下是非常有用的。例如,当我们需要在某些特定条件下动态地显示或隐藏一个视图时,我们可以通过添加或删除该视图来实现。另外,当我们需要在不同的视图控制器之间共享一个视图时,我们可以将其从一个视图控制器中删除并添加到另一个视图控制器中。

然而,需要注意的是,即使UIView重新出现,它的位置、大小和其他属性可能会受到之前设置的影响。因此,在重新添加UIView之前,我们可能需要重新设置其属性,以确保其在屏幕上正确显示。

总结起来,即使在从superview中删除UIView之后,它仍然存在于内存中,并且可以重新添加到视图层次结构中。这种行为可以用于动态显示或隐藏视图,以及在不同的视图控制器之间共享视图。在重新添加UIView之前,可能需要重新设置其属性以确保正确显示。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IOS开发系列——UIView专题之四:事件分发机制篇【整理,部分原创】

iOS,hit-Testing的作用就是找出这个触摸点下面的View是什么,HitTest检测这个点击的点是不是发生在这个View上,如果是的话,就会去遍历这个View的subviews,直到找到最小的能够处理事件的...那么该事件就不可能发生在View的Subview,所以检测过程中发现该事件不在ViewB内,直接就不会检测在不在ViewF内。...*如果*returnSuper=YES,则代表返回super hitTest:withEvent:,否则则按照block的返回值(即使是nil) * * @discussion切记,千万不要在这个...------------UIApplication ------------------------------------------------STPAppDelegate 这样比较清晰,大家直观的看到...touchesBegan和touchesEnded/touchesCancelled一定是成对出现的,这点大家可以放心。

60810

View编程指南

每个superview将其子view存储在有序数组,并且该数组的顺序影响每个子View的可见性。...如果两个兄弟子view彼此重叠,则最后添加的子view(或移动到子view数组的末尾)会出现在另一个之上。 Superview - subview关系影响多个view的行为。...影响子view的其他更改包括隐藏superview,更改superview的透明度,或将数学变换应用于superview的坐标系。 View层次结构的排列决定了应用程序如何响应事件。...这种延迟使您有机会使多个view失效,从您的层次结构添加或删除view,隐藏view,调整view大小,并一次重新定位view。然后你所做的所有改变都会同时反映出来。...之后,对view’s geometry的更改并不总是导致重新创建位图。相反,contentMode属性的值决定是否缩放位图以适应新的边界,或者只是固定到View的一个角或边缘。

2.2K20

View编程指南(三)

要对其superview的现有subviews进行重新排序,请调用superview的bringSubviewToFront:,sendSubviewToBack:或exchangeSubviewAtIndex...使用这些方法比删除subview并重新插入它们要快。 要从其superview移除subview,请调用subview的removeFromSuperview方法(而不是superview)。...但是,隐藏的view参与与view层次关联的自动调整和其他布局操作。因此,隐藏view通常是从view层次结构删除view的一种方便的替代方法,特别是如果您计划在不久的将来再次显示view时。...当键盘出现时,您可以重新定位或调整view的大小,使其不会位于键盘下方。有关如何与键盘交互的信息,请参阅Text Programming Guide for iOS。...内置到UIView的动画支持可以轻松地将更改设置为查看属性。

1.7K30

iOS11UINavigationBar的item左右间距调整

相信很多同学都知道在iOS7之后调整导航栏两侧按钮距离左右间距,其实就是在左右barButtonItem的数组添加一个宽度为负的占位item。...trailingConstraint]; break; } } } } 现在看起来问题解决了,但是某一个界面在push一个新界面之后再返回回来之后位置就还原了...  解决方案其实很简单,只要将设置leftItem的方法写在viewWillAppear即可,这样即可保证约束不会被系统重置。...现在有一个终极解决方案: UINavigationBarContentView平铺在导航栏作为iOS11的各个按钮的父视图,该视图的所有的子视图都会有一个layoutMargins被占用,也就是系统调整的占位...,我们只要把这个置空就行了.那样的话该视图下的所有的子视图的空间就会变成我们想要的那样,当然为了保险起见,该视图的父视图也就是bar的layoutMargins置空,这样 整个bar就会跟一个普通视图一样了

1.5K30

iOS11UINavigationBar的item左右间距调整

相信很多同学都知道在iOS7之后调整导航栏两侧按钮距离左右间距,其实就是在左右barButtonItem的数组添加一个宽度为负的占位item。...trailingConstraint]; break; } } } } 现在看起来问题解决了,但是某一个界面在push一个新界面之后再返回回来之后位置就还原了...  解决方案其实很简单,只要将设置leftItem的方法写在viewWillAppear即可,这样即可保证约束不会被系统重置。...现在有一个终极解决方案: UINavigationBarContentView平铺在导航栏作为iOS11的各个按钮的父视图,该视图的所有的子视图都会有一个layoutMargins被占用,也就是系统调整的占位...,我们只要把这个置空就行了.那样的话该视图下的所有的子视图的空间就会变成我们想要的那样,当然为了保险起见,该视图的父视图也就是bar的layoutMargins置空,这样 整个bar就会跟一个普通视图一样了

3.1K50

如何把设计图自动转换为iOS代码? 在线等,挺急的!

尽管作为一名iOS开发人员,我依然对苹果公司提供的开发技术及其发展方向持谨慎和保守态度.前一段时间,尝试使用 Xib来布局视图,遇到一些坑,但是熟悉之后,确实比原来单纯基于绝对位置的纯代码布局更灵活些...,更快捷些.在此期间,我研究的一个重要话题就是如何实现Xib之间的嵌套复用,即在一个Xib上如何直接嵌入另一个Xib.乍听起来很简单,但是在亲身实践之后,才发现其难度.我不是来吐槽的,个中曲折不再一一赘述...* 使用方法: 在xib或storyboard,将某一用于占位的view的 custom class 设为对一个的 component, 则初始化时,自动使用此component对应的xib文件的内容去替换对应位置...不要手动调用此方法. */ - (void)setup; /** * 重新加载数据....因为我们是基于比例来添加约束,不同屏幕下,自动等比变换.

1.3K60

深入详解iOS适配技术

所以这两种方式都不可取,毕竟将来出现越来越多的屏幕尺寸。从开发的角度,重复繁琐的代码牵绊住开发者的进度;从程序设计角度,这样的设计思路不够高级,且日后不易于拓展和维护。)...UIView有一个autoresizingMask属性,可以通过该属性来约束父子视图之前的位置关系,并且UIView还有一个BOOL类型的autoresizesSubviews属性,默认为YES,代表父控件跟随子控件尺寸的变化而变化...的宽高比例维持不变,上下左右间距随其superView的缩放而缩放 ?...父控件随子控件变化而变化 如果希望父控件随子控件(UILabel/UIView)高度的变化而变化,就不要给父控件添加高度约束,只需要子控和向父控件在垂直方向上添加约束,这样子控件高度改变,父控件高度随之改变...而在sizeClass出现之后,我们新建的universal项目就只有一个main.storyBoard。

8.4K70

iOS布局之AutoresizingMask和AutoLayout

其中AutoResizing作为一种旧的布局方式,在AutoLayout被推广之后已经很少被使用。为了更加清晰的了解iOS的布局方式,本篇针对于这两种布局方法进行简要的总结。...//父视图 UIView *superView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; superView.backgroundColor...= [UIColor orangeColor]; [self.view addSubview:superView]; //子视图 UIView *subView = [[UIView alloc] initWithFrame...屏幕快照 2016-09-18 下午4.53.23.png 我们可以看到,图中的子视图的宽度随着父视图的宽度增加到了二倍。这就是AutoResizing的一个最简单的应用。...IB will do this for you. */ 从以上的描述,我们可以知道在使用AutoResizing布局时,AutoLayout根据autoResizing来创建同等行为的constraint

1.8K60

iOS学习——UIView的研究

在iOS开发,我们知道有一个共同的基类——NSObject,但是对于界面视图而言,UIView是非常重要的一个类,UIView是很多视图控件的基类,因此,对于UIView的学习闲的非常有必要。...< 自动调整与superView底部的距离,也就是说,与superView顶部的距离不变. 57 }; 58 59 /** UIView动画选项 */ 60 typedef NS_OPTIONS...< 系统删除动画 110 } NS_ENUM_AVAILABLE_IOS(7_0); 111 112 typedef NS_ENUM(NSInteger, UIViewTintAdjustmentMode...:(nullable UIView *)view; 217 /** 将rect由rect所在视图转换到目标视图view,返回在目标视图view的rect */ 218 - (CGRect)convertRect...nonatomic) BOOL preservesSuperviewLayoutMargins NS_AVAILABLE_IOS(8_0); 294 /** 改变view的layoutMargins这个属性时,触发这个方法

2.7K80

【 iOS 应用开发 】 UIKit 控件 ( UIView 属性 | storyboard 设置 | 模拟器 | 拖线关联 | tag | 软键盘操作 | 颜色值 | 代码生成控件 | 动画设置 )

Entry Point 对象就显示出来了, 界面的箭头显示出来了; 界面启动流程 : ① 解析 Deployment Info 程序配置的程序入口 Storyboard, ② 根据 Storyboard...- ( 2 ) UIView 属性 UIView 常用属性 : 1.superview 属性 : 获取父控件对象, UIView 定义内容 @property(nonatomic,readonly)..., 此时圆圈变成 , 此时**按住鼠标左键, 拖到按钮控件上**, 此时按钮控件与点击方法就关联起来了; 4.解除按钮与点击方法关联 ( 非必要说明 ) : 如果要修改按钮的方法, 首先要删除之前设置的方法...获取按钮的父控件 UIView * superView = sender.superview; //2....获取按钮的父控件 UIView * superView = sender.superview; //2.

4.7K30

IOS开发系列——Masonry手写Autolayout专题【整理,部分原创】

/* mas_makeConstraints 只负责新增约束 Autolayout不能同时存在两条针对于同一对象的约束 否则会报错 mas_updateConstraints 针对上面的情况 更新在...block中出现的约束 不会导致出现两个相同约束的情况 mas_remakeConstraints 则会清除之前的所有约束 仅保留最新的约束 三种函数善加利用 就可以应对各种情况了 */ 其次 equalTo...1.1.2 [初级] 让一个view略小于其superView(边距为10) UIView *sv1 = [UIView new]; [sv1 showPlaceHolder]; sv1.backgroundColor...不过,mas_remakeConstraints是删除之前constraint,然后再添加新的constraint(适用于移动动画);而mas_updateConstraints只是更新constraint...loginVerifyCodeGetButton =nil; _loginVerifyCodeTextField = nil; 1.3.3 尽量直接用equalTo,而不用mas_equalTo mas_equalTo需要等控件自身布局完成了之后才能调用

73010

初窥Masonry

这里要注意的一点就是Masonry能够添加AutoLayout的一共有三个函数。...mas_makeConstraints 只负责新增约束 Autolayout不能同时存在两条针对于同一对象的约束 否则会报错 mas_updateConstraints 针对上面的情况 更新在...block中出现的约束 不会导致出现两个相同约束的情况 mas_remakeConstraints 则会清除之前的所有约束 仅保留最新的约束 三种函数善加利用 就可以应对各种情况了 */ 让一个...View略小于SuperView 这里我们假定让一个View小于它的SuperView每个边界的距离都是10,那么代码可以这么写 [view mas_makeConstraints:^(MASConstraintMaker...因为这里的计算是绝对的数值,计算bottom需要小于superView的高度,所以要-10,同理用于right。

60040

View编程指南(四)

在iOS,动画广泛用于重新定位view,更改大小,将其从view层次结构移除,并将其隐藏起来。 您可以使用动画将反馈传达给用户或实现有趣的视觉效果。...默认情况下,嵌套动画会继承父级的持续时间和动画曲线,但即使这些选项可以根据需要被覆盖 [UIView animateWithDuration:1.0 delay: 1.0...在View之间创建动画转换 view转换可帮助您隐藏与在view层次结构添加,删除,隐藏或显示view相关的突然更改。...例如,您可以添加或删除subview以在两种不同状态之间切换superview。在动画完成时,显示相同的view,但其内容现在不同。...在传递给此方法的动画块,通常动画的唯一更改是与显示,隐藏,添加或删除子view相关的更改。将动画限制为该集合允许view创建view之前和之后版本的快照图像,并且在两个图像之间创建动画,这更高效。

62510
领券