我创建了一个示例项目来重现这个.
我有一个带有UILabel的xib文件,它具有固定的顶部,前导和尾随约束.我添加了一个minHeight约束并将行数设置为0.
我将preferredMaxLayoutWidth设置为Automatic(在xib文件中检查).
在viewDidLoad中,我是这样的:
Run Code Online (Sandbox Code Playgroud)self.myLabel.layer.borderColor = [[UIColor redColor] CGColor]; self.myLabel.layer.borderWidth = 2.0f;
self.myLabel.text = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim …Run Code Online (Sandbox Code Playgroud) 我的NSManagedObjectModel返回nil,尽管路径正确.
NSString *modelKey = [NSString stringWithFormat:@"/%@/Model", name];
NSString *modelPath = [((Configuration *)[Configuration shared]) stringEntry:modelKey];
NSURL *modelURL = nil;
if ( ! [modelPath contains:@"://"] ) {
modelPath = PathForBundleResource( modelPath );
modelURL = [NSURL fileURLWithPath:modelPath];
}
NSManagedObjectModel *m = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
Run Code Online (Sandbox Code Playgroud)
NSString*PathForBundleResource(NSString*relativePath)
NSString* resourcePath = [[NSBundle mainBundle] resourcePath];
return [resourcePath stringByAppendingPathComponent:relativePath];
Run Code Online (Sandbox Code Playgroud)
我重置了模拟器,做了一个干净的构建,但没有任何帮助.
我是iPhone编程的新手(特别是核心数据).
非常感谢任何帮助.
编辑:我编辑了有关xcdatamodeld文件的原始帖子.它最初没有正确连接,但现在它仍然存在同样的问题.
编辑2:显然,xcdatamodel的名称在链接后对xcdatamodel的名称有一些变化.它现在正在运作.感觉很蠢.不知道如何删除这个问题.
所以我对限制很新.
我有一个包含多个视图作为兄弟的nib文件.ViewController的视图包含一个tableView,我还有另一个视图,它将被添加到tableHeaderView(让我们称之为self.tableHeaderView).
我面临的问题是我想根据某些条件调整self.tableHeaderView的大小.我已经为所有UI元素添加了约束,无论出于什么原因,我都不能通过nib向self.tableHeaderView添加高度约束.
我尝试以编程方式更改self.tableHeaderView的框架,但是当我在模拟器中运行代码时没有任何效果,这是有道理的,因为如果我使用自动布局,它应该忽略框架更改.
我尝试以编程方式添加高度约束但它崩溃了.
这是我要添加高度约束的一段代码.
[self.tableHeaderView addConstraint:[NSLayoutConstraint constraintWithItem:self.tableHeaderView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:107.0f]];
Run Code Online (Sandbox Code Playgroud)
我得到的例外:***断言失败 - [UITableView layoutSublayersOfLayer:],/ SourceCache/UIKit_Sim/UIKit-2903.2/UIView.m:8536
*由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'执行-layoutSubviews后仍需要自动布局.UITableView的-layoutSubviews实现需要调用super.'*
最糟糕的情况我会添加第二个高度的另一个兄弟视图并复制UI元素,但我想避免这种情况.

编辑1:当我有这个self.topicHeaderView.translatesAutoresizingMaskIntoConstraints = NO时,我得到了那个异常.
如果我没有它,我会得到这个
无法同时满足约束.可能至少下列列表中的一个约束是您不想要的约束.试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它.(注意:如果您看到了您不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性translatesAutoresizingMaskIntoConstraints的文档)("","")
将尝试通过打破约束来恢复
打破objc_exception_throw以在调试器中捕获它.在列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法也可能有所帮助.
编辑:2在4英寸的屏幕上,它看起来很好(红色背景覆盖整个tableHeaderView,如我所料)

在3.5英寸的屏幕上,红色背景(应用在笔尖上,即使我将高度设置为117.0f,也会延伸到一定高度.表格内部的UI元素正确显示)

底部的蓝线是分隔线,蓝色边框位于tableHeaderView周围.
我在我的一个项目中实现了"无限滚动",我正在使用新的estimatedHeightForRowAtIndexPath:委托方法.一旦我实现了该委托方法,每当我调用reloadData时,我的tableView就会跳转(也就是滚动到底部)(当我添加一组新行时会发生这种情况.)
如果没有这种方法,我的tableView就会保留在原位,它会将额外的行添加到tableView的底部而不进行任何滚动.
我正在调用[tableView reloadData]而不是其他方法(insertRowsAtIndexPaths:).我没有调用beginUpdates或endUpdates,因为我正在重新加载整个表.
有没有人经历过这个?一世
我正在尝试绘制带有一些“曲线边缘”的 UIView。
它应该是这样的:
这是我得到的:
请注意右上角 (TR) 角如何与右下角 (BR) 不对称?BR 角与我想要实现的非常相似,但我无法使 TR 角正确对齐(以一堆不同的开始和结束角度播放)。
这是代码:
struct Constants {
static let cornerRadius: CGFloat = 15.0 // used for left-top and left-bottom curvature
static let rightTipWidth: CGFloat = 40.0 // the max. width for the right tip thingy
static let rightCornerRadius: CGFloat = 10.0 // the radius for the right tip
static let rightEdgeRadius: CGFloat = 10.0 // the radius for the top right and bottom right curvature
}
override func draw(_ rect: CGRect) …Run Code Online (Sandbox Code Playgroud) iphone ×5
ios ×4
objective-c ×2
constraints ×1
ios8 ×1
nib ×1
swift ×1
uibezierpath ×1
uitableview ×1
uiview ×1
xib ×1