Re: [讨论] 有无推荐的Autolayout教学 (用code)

楼主: cendre (desperado)   2014-08-23 00:07:43
※ 引述《SwiftLang (Swift-Lang)》之铭言:
: 话说Autolayout从iOS6出到现在了...到现在都还没搞懂它...真是惭愧
: 应该说每次看教学后自己尝试都失败, 觉得太难搞就放弃它了 囧
: 最近想来搞懂它, 有没有推荐的教学呢? 因为现在的project都是用纯code写
: 所以希望不是用storyboard来教学
推荐这份文件
https://developer.apple.com/library/ios/documentation/userexperience/
conceptual/AutolayoutPG/AutoLayoutinCode/AutoLayoutinCode.html
→ yes0324: 帮缩http://ppt.cc/uTzT
: 另外我有几个问题想问
: 1) 例如我有一个tableView在controller的superview里面, 画面有navigationBar
^ 假设这是指 controller.view?
: 最底下有个320 x 50的广告, 我可以直接[[UITableView alloc] init](不设frame)
: 设定离navigationBar 0px, 离广告0px, 左右0x (或固定320)
: 让autolayout自己判断tableView该有的宽高是多少吗? 试过好多次都不成功
当三个 subviews 都已经 alloc init
self.navigationBar
self.tableView
self.adView
其中 self.navigationBar 已经用 setFrame: 设定好 (CGRect){{0, 0}, {320, 64}}
用 auto layout 的设定方式:
self.tableView.translatesAutoresizingMaskIntoConstraints = NO;
self.adView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:self.navigationBar];
[self.view addSubview:self.tableView];
[self.view addSubview:self.adView];
NSDictionary *views =
NSDictionaryOfVariableBindings(_navigationBar, _tableView, _adView);
NSArray *horizontal =
[NSLayoutConstraint constraintsWithVisualFormat:@"|[_tableView]|"
options:kNilOptions
metrics:nil
views:views];
[self.view addConstraints:horizontal];
NSString *fmt = @"V:[_navigationBar][_tableView][_adView(50)]|";
NSUInteger opt = NSLayoutFormatAlignAllLeft | NSLayoutFormatAlignAllRight;
NSArray *vertical =
[NSLayoutConstraint constraintsWithVisualFormat:fmt
options:opt
metrics:nil
views:views];
[self.view addConstraints:vertical];
: 2) 如果画面上有多个元件, 你们会用autolayout还是直接设frame呢?
: 例如两个UIButton好了
: 按钮1
作者: yes0324 (yes0324)   2014-08-23 21:15:00

Links booklink

Contact Us: admin [ a t ] ucptt.com