ios – 以编程方式实现视图的自动布局

ios – 以编程方式实现视图的自动布局,第1张

概述我有一个应用程序,其视图是以编程方式生成的.例: -(void)loadView{ [super loadView];// SET TOP LEFT BTN FOR NEXT VIEWUIBarButtonItem *topLeftBtn = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemSt 我有一个应用程序,其视图是以编程方式生成的.例:
-(voID)loadVIEw{    [super loadVIEw];// SET top left BTN FOR NEXT VIEWUIbarbuttonItem *topleftBtn = [[UIbarbuttonItem alloc] initWithTitle:@"Back" style:UIbarbuttonItemStylebordered target:nil action:nil];self.navigationItem.backbarbuttonItem = topleftBtn;[topleftBtn release];// programmatically set up the vIEw for cart tableVIEwCGRect IoUtableVIEwFrame = CGRectMake(0,320,348);IoUtableVIEw = [[UItableVIEw alloc]initWithFrame:IoUtableVIEwFrame style:UItableVIEwStylePlain];[[self IoUtableVIEw] setDelegate:self];[[self IoUtableVIEw] setDataSource:self];[[self vIEw] addSubvIEw:IoUtableVIEw];// set up the summary labelCGRect summarytableFrame = CGRectMake(0,348,18);UILabel *summarytableLabel = [[UILabel alloc] initWithFrame:summarytableFrame];[summarytableLabel setFont:[UIFont FontWithname:@"Helvetica" size:14]];[summarytableLabel setText:@"   Summary"];UIcolor *labelcolor = UIcolorFromrGB(MIDdleBluecolor);[summarytableLabel setBackgroundcolor:labelcolor];[summarytableLabel setTextcolor:[UIcolor whitecolor]];[[self vIEw] addSubvIEw:summarytableLabel];// set up the summary tableCGRect summarytableVIEwFrame = CGRectMake(0,366,44);summarytableVIEw = [[UItableVIEw alloc]initWithFrame:summarytableVIEwFrame style:UItableVIEwStylePlain];[summarytableVIEw setScrollEnabled:NO];[[self summarytableVIEw] setDelegate:self];[[self summarytableVIEw] setDataSource:self];[[self vIEw] addSubvIEw:summarytableVIEw];}

是.我将在未来更新NIB并使用界面构建器和故事板,但我一年没有完成ios编程.

随着新的iPhone 5具有不同的屏幕尺寸,应用程序看起来不太好,我需要实现某种类型的自动布局.有没有办法以编程方式现在而不是使用IB?

非常感谢!

解决方法 是的,在NSLayoutConstraint中使用两种方法
-(NSArray*)constraintsWithVisualFormat:options:metrics:vIEws:-(NSLayoutConstraint*)constraintWithItem:attribute:relatedBy:toItem:attribute:    multiplIEr:constant:

视觉格式语言全部打包成Nsstring
所以我以你的IoUtableVIEw为例.

[self.vIEw addConstraints:[NSLayoutConstraint     constraintsWithVisualFormat:@"|[IoUtableVIEw]|"     options:0     metrics:nil     vIEws:NSDictionaryOfVariableBindings(IoUtableVIEw)]];

管道符号“|”代表着超级视野的优势.
[]代表一个视图.
那么我们在那里做了什么,我们将IoUtableVIEw的左右边缘挂接到其超级视图的左右边缘.

视觉格式的另一个例子:
我们垂直钩你的表视图,摘要标签和汇总表.

[self.vIEw addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:    @"V:|[IoUtableVIEw(348)][summarytableLabel(18)][summarytableVIEw(44)]"    options:NSLayoutFormatAlignAllleft    metrics:nil    vIEws:NSDictionaryOfVariableBindings(IoUtableVIEw,summarytableLabel,summarytableVIEw)]];

现在,这三个视图在每个边缘垂直连接,NSLayoutFormatAlignAllleft将所有视图对齐左侧,他们将基于其他约束,在这种情况下,先前的约束.
()用于指定视图的大小.

有更多的不平等和优先级以及“ – ”间隔符号,而是check out the apple docs for that

编辑:更正了使用constraintsWithVisualFormat的示例,如方法签名所示.

总结

以上是内存溢出为你收集整理的ios – 以编程方式实现视图的自动布局全部内容,希望文章能够帮你解决ios – 以编程方式实现视图的自动布局所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1097659.html

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

发表评论

登录后才能评论

评论列表(0条)

保存