xcode 为什么懒加载 addsubview 层级没有提示

ios 关于 通过加载 xib 生成的view,调用 addsubviews,sub view的按钮 不相应点击事件的 问题
ios 关于 通过加载 xib 生成的view,调用 addsubviews,sub view的按钮 不相应点击事件的 问题
[摘要:测试情况: xcodeVersion 4.6 (4H127) , ios6.1 ------ // self 是 LoginView ,是减载xib文件天生的: NSArray *nibContents = [[ NSBundle mainBundle ] loadNibNamed : @LoginView owner : nil options : nil ]; LoginView *viewLogin = (]
测试环境: xcode&Version 4.6 (4H127) , ios6.1
// self 是 LoginView ,是加载xib文件生成的:
& &&NSArray *nibContents = [[NSBundle
mainBundle] loadNibNamed:@&LoginView&
&& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
owner:nil & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
options:nil];
&& & & & & LoginView *viewLogin = (LoginView*)[[nibContents
objectAtIndex:0]
& & & & & & viewLogin.frame =
CGRectMake(0, 0, menuWidth, menuHeight);
& & & & & & viewLogin.delegate =
&& & & & & &
& & & & & & view = viewL
---------
// addsubview调用&加载xib文件生成的view :sub view的 的按钮点击事件等可以响应
-(void) show_setViewOfLogin:(BOOL) isShow isWithAnimation:(BOOL) isWithAnimation
& & if (isShow) {
& & & & if (setViewOfLogin ==
&& & & & & &
& & & & & & NSArray *nibContents = [[NSBundle
mainBundle] loadNibNamed:@&SetViewOfLogin&
&& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
owner:nil & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
options:nil];
& & & & & & setViewOfLogin = (SetViewOfLogin*)[[nibContents
objectAtIndex:0]
&& & & & & &
& & & & & & setViewOfLogin.frame =
CGRectMake((1024-
800)/2.0, (748 -
220)/2.0, 800,
&& & & & & &
& & & & & & setViewOfLogin.delegate =
&& & & & & &
& & & & & & [ShadowHandle
addShadow:setViewOfLogin
color:[UIColor
blackColor]];
&& & & & & &
& & & & if ([setViewOfLogin
superview] == nil) {
&& & & & & &
& & & & & & [self addSubview:setViewOfLogin];
& & & & setViewOfLogin.hidden =
&& & & & & &
& & & & if (setViewOfLogin !=
&& & & & & &
&& & & & & &
& & & & & & setViewOfLogin.hidden =
&& & & & & &
-(void) show_helpSystemView:(BOOL) isShow isWithAnimation:(BOOL) isWithAnimation
& & if (isShow) {
& & & & if (helpSystemView ==
&& & & & & &
& & & & & & helpSystemView = [[HelpSystemView
alloc] initWithFrame:CGRectMake(0,
0, 1024, 748)];
&& & & & & &
& & & & & & helpSystemView.delegate =
&& & & & & &
&& & & & & &
& & & & if ([helpSystemView
superview] == nil) {
&& & & & & &
& & & & & & [self.superview
addSubview:helpSystemView]; //
这样可以响应, self.superview 没用 xib 生成;
// 如果是这样 用self 加入子视图的 则 会出现刚才说的 情况
addSubview:helpSystemView];
& & & & helpSystemView.hidden =
& & & & if (helpSystemView !=
&& & & & & &
&& & & & & &
& & & & & & helpSystemView.hidden =
&& & & & & &
感谢关注 Ithao123精品文库频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
IThao123周刊最新Xcode4.5.1新特性——container&view控件的用法
在不知不觉中,Xcode4.5.1的正式版本已经在Mac系统中的 App
Store中发布了,如图。
Xcode4.5.1作为一个工具集合,大家都十分关心它给用户带来了些什么新东东?!在苹果官方公布的Xcode 4.5.1 Release Notes文件中,主要说了有以下两点新功能:一是在IB中添加了一个按钮,用户用它可以方便切屏幕的全屏视图;另一个就是在故事板中加入了container view苹果官方文档切图):
显然,我们更关心的是container view下面对container view
xcode为@”ContentScene”)添加进父视图中,则代码通常写法是:
UIViewController *child = [[self storyboard]
instantiateViewControllerWithIdentifier:@"ContentScene"];
[self addChildViewController:child];
[[self view] addSubview:[child view]];
[[child view] setFrame:frame];
&运行后的效果如下图所示:
&在storyboardcontainer view”方式控制这个子视图!!
下面通过实际练习测试一下:
打开Xcode4.5.1,在启动画面上(这里我用的版本是:Xcode 4.5.1 4G1004)点Create a new XCode project:
然后选择Single View
Application这个最简单的模板。点击Next:
在下一页,在Product
Name(产品名字)一栏输入“NewTest”。
Identifier(公司代码)中输入一串字符。其实什么都可以,但是遵从这个格式(com.yourcompanyname 或者 com.yourname)比较好。
Family中选择iPhone。
Storyboard(使用故事版)边上打钩。
在Use Automatic Reference
Counting边上打钩。点击Next:
选择一个合适的路径来储存你的程序。点击Next:
工程项目程序的基本设置就好了。
下面进入正题
打开故事板,拖一个按钮和一个container view
,将其背景改为绿色,并拖一个标签进去(没有什么特别,主要是方便显示)如图:
- (void)prepareForSegue:(UIStoryboardSegue
*)segue sender:(id)sender
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Neegou | 一个懂PHP的iOS程序员
自从Swift语言发布以来,开发者对它的评价可谓喜忧参半,大家都在考虑要不要马上跟进。今天试从商业角度,从自身利益出发来看待这个问题。
首先,Swift是什么?我认为,Swift不仅仅是一门编程语言,更重要的是,它是一种由Apple推出的,补充并完整Apple生态链的,面向开发人员的产品。该产品形似脚本语言(长得像PHP,Javascript),学习成本低(至少看上去是这样),旨在笼络新的开发者。也就是说,是一种快速拓宽市场的手段。
其次,Swift是不是Objective-C(以下简称OC)的替代品?上面已经说了,Swift的目标客户是新的iOS/Mac OS开发者,所以我等已有几年OC经验,稳稳当当工作的“老”码农可以不必跟进。但是如果Apple志在用Swift取代OC,那我们为了可持续发展,那也必须学习。关于这一点,有人说Apple在XCode6中都把Swift放在OC前面了,足以证明Apple要让Swift在未来替代OC。我认为这是一句彻头彻尾的废话。WWDC刚刚推出Swift并声称要大力推广,这不就是促销手段之一吗?促销能等于取代吗?还有人列举Swift语言的各种优点,声称Swift以后肯定会替代OC,只是时间问题。我没法否认这种预言式的说法,只是这个时间是多长还无从得知,这个时间成本也无法计算。别忘了,Apple官方亲口说的只有,我们会继续支持OC。20年的沉淀,岂容一朝推翻。
第三,Swift是不是新手入门的最佳选择?我觉得,这要看这个“新手”的目标是什么了。如果是为了自我提高,或者想以此为契机进入到Apple开发者的行列来。那么Swift是最佳选择。因为,你就是Apple推出Swift的根本动力,Swift是为你量身订制的。鼓掌。但如果这位“新手”是以短期内参加工作为目的,那么,很抱歉。你还是选择OC吧。对于一个还不完善且前途未卜的语言来说,是没有以利益为核心驱动的商业公司会为之埋单的。简单的说,咱们公司不招会Swift的。
综上所述,等等,有人已经开骂了。你还综个球啊,说了半天就是一个字,“懒”!就是为不想学习新事物找借口。的确,我目前不会去猛攻Swift。我不是一个高尚,有情怀(貌似这个词已经被某胖玩坏了)的人,我有生活的压力,我注重现实,而它,不能为我创造价值。那么Swift是不是跟我们这些OC党就无关了呢?答案显然是否定的。大家都是跟着Apple混饭吃的,Apple重推的产品怎么可能跟自己完全无关?重点是Swift与商业的契合点。Swift还有很长的路要走,当其被大多数公司或重量级公司认可之时,也就是我们转型之日。转型不是说弃OC,而是很可能咱们参与的项目是以Swift为主导的。目前可以做为了解项目,逐渐跟进。
最后想说一点,Swift的推出最大的受益者可能是各种培训厂商吧……大家懂的。
本条目发布于。属于、分类。作者是。
今天上午,下午分别面试了两家公司。上午是一家互联网公司,气氛还比较好,是我比较喜欢的。技术这块是直接机试,主要是给了些BUG让我修复,整个过程还算顺利。下午去了一家大型的证券公司。整理技术问题如下:
1. UIView的生命周期是什么样的,执行顺序是怎么样的?
init —— loadView —— viewDidLoad —— viewWillAppear —— viewWillDisappear —— viewDidUnload —— dealloc.
2. UIViewController在什么时候会加载UIView,换句话说,技术上在哪个时间点会执行loadView。
这个问题我没有答上来,原来写程序只知道是在addSubview或pushViewController的时候,程序就会执行loadView。于是觉得,loadView是在UIView要被显示出来之前执行的。后来了解到,这种说法其实有点本末倒至了。是因为执行了loadView,所以UIView才会被显示出来。正确的答案是,在view对象第一次被访问的时候,会执行loadView。
3. UITableView的执行流程是怎么样的?
省去UIView相关的不说,就UITableView来说,每个UITableView都会有一个delegate,delegate指向的对象会接受UITableView的委托从而实现一系列的方法。其主要的几个方法执行顺序如下:
numberOfSectionsInTableView——numberOfRowsInSection——titleForHeaderInSection——cellForRowAtIndexPath
4. UITableView是怎样实现Cell的重用的?
UITableView中有一个数组,visibleCells,保存可视的cell。假设一屏可以显示10个cell。当向上滑动tableView时,第1个cell移出可视范围,同时第11个cell显示出来。如果cell是通过dequeueReusableCellWithIdentifier方法得到的,其本质上,是将第一个cell放到第11个的位置, 在10个可视的cell上下各有一个不可视的cell,这两个cell会根据dataSource提前组装好,然后在上下滚动时显示出来。如上文所述向上滚动一个cell,那么第1个cell被移动到第0个,第0个cell被移动到第11个的位置然后内容按照indexPath的要求重绘出来,但并不会清除cell中的subView。这也是为什么在cell中添加了UILabel后,上下拉动时,会有重影(多个UILabel重叠)。要避免此情况,Apple推荐自定义UITableViewCell。如果不自定义cell的话,可以为不同indexPath的cell定义不同的cellIdentifier。或是每次都通过遍历subview删除所有子视图,再重新addSubView,等等。
5. 如何设计一个可变高度(根据内容自适应高度)的UITableViewCell?
这个真是让人蛋疼,我原来确实没有遇到过这样的需求,做法都是定高,然后文字内容多了,直接省略,引导用户点击进入下一层观看。当时间歇性脑残的说了句不知道,后来想想,真的很简单:
我们在configureCell的时候,通过sizeWithFont方法获取UILabel的CGSize,从而得出自定义cell的高度,然后在heightForRowAtIndexPath里进行对应的赋值就可以了。-_-!!!
6. 谈谈内存管理机制。
这个大家基本都了解,Objective-C是通过retainCount来决定是否回收内存。每个NSObject都有一个计数器retainCount,当alloc时,retainCount的值为1,并且每次retain都会加1,release会减1,当retainCount为0的时候,内存会被释放。由此引发了另一个问题,NSString通过stringWithString创建的对象,他的作用域是什么呢?什么时候会被释放?我觉得,通过上述静态方法创建的对象约等于,[[[NSString alloc] initWithString:@””] autorelease]; 也就是说,他是一个autorelease的对象,被放入NSAutoreleasePool中。系统会为每个RunLoop建立一个NSAutoreleasePool,当RunLoop结束时,autoreleasePool里的内存将被释放。
注:答题时我混淆了闭包和RunLoop的概念,把RunLoop说成了闭包。后面讲Block会谈到。
7. 谈谈对block的了解。
block才是闭包。闭包是一个函数或指向函数的指针,再加上其外部变量(也叫自由变量)。block有三种,NSConcreteGlobal, NSConcreteStack, NSConcreteMalloc。block是可以访问block外部的变量的。
NSConcreteGlobal: 就像一个全局函数一样,从头到尾待在那,始终是可用的。当Block中没有引用外部变量时,block为global类型的。
NSConcreteStack: 保存在栈中的block,block执行完后内存会被释放掉。当block引用了外部变量时,block为stack类型的。
NSConcreteMallock: 保存在堆中的block,block为引用记数为0时,内存会被释放掉。当block执行copy时,block会从栈中复制到堆中。
以上都针对非ARC环境而言,如果在ARC环境下,引用外部变量的block会自动保存在堆中,无需copy。
目前整理的就这么多,KVO,Delegate等设计模式今天没谈到。还有7个公司的面试等着哥呢,海量投简历的孩纸伤不起啊。我会持续更新。
本条目发布于。属于分类。作者是。
It’s often handy to know the size of the standard iPhone User Interface (UI) elements.
You know, the Status Bar, Nav Bar, Tab Bar, etc.
Here you go…
So, if you want an image to fill the Main Content Area, it needs to be 320 pixels wide by 367 pixels high.
Note: these measurements are for standard, non-Retina displays. Titanium uses these measurements regardless of what devices you are working with. If you want to support the Retina display, you just have to include doubled versions of your images.
For example…
Display Type
Dimensions
“image.png”
320×367 pixels
“image@2x.png”
640×734 pixels
In case you can’t make sense of the graphic…
iPhone Portrait Width
iPhone Portrait Height
Status Bar Height
Nav Bar Height
Main Content Area Height
Tab Bar Height
Keyboard Height
本条目发布于。属于分类。作者是。
The iPhone in landscape orientation has one special exception to the standard sizes of iOS User Interface (UI) elements. The Nav Bar is usually 44px high, but in this case it’s 32px high.
导航栏正常情况,高度是44px,但是在横屏下,高度为32px。
Here are all the dimensions…
这里是所有的尺寸…
If you want an image to fill the Main Content Area, it needs to be 480 pixels wide by 219 pixels high.
Note: these measurements are for standard, non-Retina displays. Titanium uses these measurements regardless of what devices you are working with. If you want to support the Retina display, you just have to include doubled versions of your images.
For example…
Display Type
Dimensions
“image.png”
480×219 pixels
“image@2x.png”
960×438 pixels
In case you can’t make sense of the graphic…
iPhone Landscape Width (iPhone横屏宽度)
iPhone Landscape Height (iPhone横屏高度)
Status Bar Height (状态栏高度)
Nav Bar Height (导航栏高度)
Main Content Area Height (主要内容区域高度)
Tab Bar Height (标签栏高度)
Keyboard Height (键盘高度)
Note that when the keyboard is displayed, it covers up the Tab Bar at the bottom of the screen.
本条目发布于。属于分类。作者是。
1、WireShark依赖X11;
2、默认情况下Mac OS X是不安装X11的;
因此,在Mac上安装WireShark,首先找出Mac OS 安装DVD安装X11。
安装完以后 echo $DISPLAY看看是不是出现如下结果
如果没有,请执行如下命令行:
DISPLAY=:0.0; export DISPLAY
另外,由于Mac OS的bug问题,每次重启系统以后,都要运行这两个命令是WireShark寻找到网卡:
sudo chgrp admin /dev/bpf*
sudo chmod g+rw /dev/bpf*
另一个办法可能不成功,就是将WireShark安装文件中的ChmodBPF文件夹拷贝到/Library/StartupItems/中;我的机器老是报安全性设置问题,因此暂时只能每次手动修改了;但如果不抓包,只是用来解码的话不用修改bpf权限也可以;
WireShark启动故障排除:
到/Application/WireShark.app/Contents/MacOS 下执行WireShark,查看结果,依据提示进行处理;
本条目发布于。属于分类。作者是。&&&&scrollview懒加载
scrollview懒加载
UIScroView 3倍的contentSize,左右Scroll时,懒惰添加左右的View
若举报审核通过,可奖励20下载分
被举报人:
huahuazidingyi
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
移动开发下载排行

我要回帖

更多关于 xcode addsubview 的文章

 

随机推荐