相关疑难解决方法(0)

在iOS 6中启用自动布局,同时保持向后兼容iOS 5

什么是利用iOS 6的新自动布局功能同时仍然在早期版本的iOS上提供旧设备兼容性的最佳方式?

backwards-compatibility ios ios5 autolayout ios6

153
推荐指数
2
解决办法
5万
查看次数

使用UITableViewCell子类执行-layoutSubviews后仍需要"自动布局"

使用XCode 4.5和iOS 6,我正在开发一个带有自定义单元格的简单表视图的应用程序.我已经在iOS 5及以下版本中完成了这一百次,但由于某种原因,新的autoLayout系统给了我很多麻烦.

我在IB中设置了我的表格视图和原型单元格,添加了子视图并将它们连接起来作为IBOutlets然后设置我的委托和dataSource.但是现在每当从第一个单元格中取出时cellForRowAtIndexPath,我都会收到以下错误:

***断言失败 - [ShopCell layoutSublayersOfLayer:],/ SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776

***由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'执行-layoutSubviews后仍需要自动布局.ShopCell的-layoutSubviews实现需要调用super.

我没有在我的子类化单元格(ShopCell)中实现-layoutSubviews方法,即使我尝试这样做并添加超级调用,因为它表明我仍然得到相同的错误.如果我从IB中的单元格中删除子视图,并将其更改为标准的UITableViewCell,一切都按预期工作,但当然我的单元格中没有数据.

我几乎可以肯定,我有一些简单的东西,但我找不到任何文件或指南来暗示我做错了什么.任何帮助,将不胜感激.

编辑:只是尝试将其更改为IB中的UITableViewCell并保留所有子视图,仍然是相同的错误.

objective-c ios autolayout xcode4.5

115
推荐指数
10
解决办法
5万
查看次数

在UITableView的标题视图上使用NSLayoutConstraints

我试图将UIView添加到UITableView的标题,然后,使用NSLayoutConstraints我想给它一个高度.

我查看了Apple Docs和WWDC 2012视频,但我无法在任何地方找到此特定错误!

我有以下代码:

- (UIImageView *)logoImageView
{
    if (!_logoImageView) {
        _logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo"]];
        [_logoImageView setTranslatesAutoresizingMaskIntoConstraints:NO];
    }
    return _logoImageView;
}
Run Code Online (Sandbox Code Playgroud)

...在viewDidLoad中

UIView *tableHeaderView = [[UIView alloc] init];
tableHeaderView.translatesAutoresizingMaskIntoConstraints = NO;

[tableHeaderView addSubview:self.logoImageView];

[self.tableView setTableHeaderView:tableHeaderView];

NSDictionary *constraintViews = @{@"tableView" : self.tableView, @"tableHeaderView" : tableHeaderView, @"logoImageView" : self.logoImageView};

[self.tableView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[tableHeaderView(50)]"
                                                                       options:0
                                                                       metrics:nil
                                                                         views:constraintViews]];
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我收到以下错误:

2012-10-08 16:31:34.559 myApp[6934:c07] *** Assertion failure in -[UITableView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776
2012-10-08 16:31:34.561 myApp[6934:c07] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: …
Run Code Online (Sandbox Code Playgroud)

nslayoutconstraint

16
推荐指数
1
解决办法
5191
查看次数