似乎我无法通过使用autoresizingMask和autoresizesSubvIEws的API指定属性来使UITextVIEw完成此 *** 作.如此处所示设置这些没有任何作用;即使superVIEw填充屏幕,UITextVIEw仍然很小.
// use existing instantiated vIEw insIDe vIEw controller;// ensure autosizing enabledself.vIEw.autoresizesSubvIEws = YES;self.vIEw.autoresizingMask = UIVIEwautoresizingFlexibleHeight| UIVIEwautoresizingFlexibleWIDth;// create textvIEwtextVIEw = [[[UITextVIEw alloc] autorelease] initWithFrame:CGRectMake(0,1,1)];// enable textvIEw autoresizing[textVIEw setautoresizingMask:UIVIEwautoresizingFlexibleWIDth| UIVIEwautoresizingFlexibleHeight];// add textvIEw to vIEw[self.vIEw addSubvIEw:textVIEw];
但是,如果我在视图控制器中实例化我自己的视图,替换它的’.vIEw’属性,那么一切都按预期工作,并且textVIEw填充其超级视图:
// reinstantiate vIEw insIDe vIEw controllerself.vIEw = [[UIVIEw alloc]init];// create textvIEwtextVIEw = [[[UITextVIEw alloc] autorelease] initWithFrame:CGRectMake(0,1)];// enable textvIEw autoresizing[textVIEw setautoresizingMask:UIVIEwautoresizingFlexibleWIDth| UIVIEwautoresizingFlexibleHeight];// add textvIEw to vIEw[self.vIEw addSubvIEw:textVIEw];
我在所有这些初始化程序/方法中尝试了两个代码块,并且在每种情况下都会出现相同的情况:
-(ID)init;-(ID)initWithFrame:(CGRect)frame;-(voID)vIEwDIDLoad;
我意识到重新实现UIVIEwController的’.vIEw’是非常难看的,任何人都可以解释我做错了吗?我假设我可以通过在我的UIVIEwController中使用初始帧设置代码来重新调整UITextVIEw的大小来解决这个问题,然后自动调整将按需运行.
-(voID)vIEwDIDLoad { textVIEw.frame = self.vIEw.frame;}
…但是貌似vIEw.frame没有在这个阶段设置,它没有定义’.size’值,所以textVIEw仍然很小.
实现我想要的正确方法是什么?我必须通过UITextVIEw:initWithFrame明确指定全屏尺寸,以使其填充其超视图吗?
对于您提供的任何建议,我将不胜感激.
解决方法 自动调整并不意味着子视图将占用其超级视图的大小.它只是意味着只要supervIEw的边界发生变化,它就会相对于supervIEw的大小变化进行调整.因此,首先,您必须将子视图的大小设置为正确的值.然后,自动调整掩码将处理将来的大小更改.这就是你所需要的:
textVIEw = [[[UITextVIEw alloc] autorelease] initWithFrame:self.vIEw.bounds];[textVIEw setautoresizingMask:UIVIEwautoresizingFlexibleWIDth| UIVIEwautoresizingFlexibleHeight];总结
以上是内存溢出为你收集整理的xcode / iOS:自动调整以填充视图 – 显式帧大小是必不可少的?全部内容,希望文章能够帮你解决xcode / iOS:自动调整以填充视图 – 显式帧大小是必不可少的?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)