xcodeiOS:自动调整以填充视图 – 显式帧大小是必不可少的?

xcodeiOS:自动调整以填充视图 – 显式帧大小是必不可少的?,第1张

概述我想要一个UITextView来填充它的superView,它是一个UIViewController实例中的普通UIView. 似乎我无法通过使用autoresizingMask和autoresizesSubviews的API指定属性来使UITextView完成此 *** 作.如此处所示设置这些没有任何作用;即使superView填充屏幕,UITextView仍然很小. // use existing i 我想要一个UITextVIEw来填充它的superVIEw,它是一个UIVIEwController实例中的普通UIVIEw.

似乎我无法通过使用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:自动调整以填充视图 – 显式帧大小是必不可少的?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1067450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存