- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个自定义 UITableViewCell,我正在尝试自动布局 UILabel,因为它的文本可以有任意长度,但我收到此错误:
Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2014-09-14 10:20:37.693 InstantForum[29658:60b] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x9aea2e0 V:|-(45)-[UILabel:0x9ae9f30] (Names: '|':UITableViewCellContentView:0x9ae9250 )>",
"<NSLayoutConstraint:0x9aea330 V:[UILabel:0x9ae9f30(>=10)]>",
"<NSLayoutConstraint:0x9aea380 V:[UILabel:0x9ae9f30]-(NSSpace(20))-| (Names: '|':UITableViewCellContentView:0x9ae9250 )>",
"<NSAutoresizingMaskLayoutConstraint:0x8c8a750 h=--& v=--& V:[UITableViewCellContentView:0x9ae9250(44)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x9aea380 V:[UILabel:0x9ae9f30]-(NSSpace(20))-| (Names: '|':UITableViewCellContentView:0x9ae9250 )>
Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful
这是我的 UITableViewCell 中的代码,这是我在单元格中设置 subview 的位置:
-(void)setupView:(PostInfo*)postInfo{
CGRect screenRect = [[UIScreen mainScreen] bounds];
viewPostMessage = [[UIView alloc] initWithFrame:CGRectMake(10, 10, screenRect.size.width - 20, 100)];
viewPostMessage.backgroundColor = [UIColor colorWithRed:193.0f/255 green:193.0f/255 blue:193.0f/255 alpha:1.0f];
viewPostMessage.layer.borderColor = [UIColor blackColor].CGColor;
viewPostMessage.layer.borderWidth = 0.5f;
dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
// 3) Load picker in background
userImage = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 30, 30)];
[self.contentView addSubview:userImage];
if(postInfo.userImage.length > 0){
__block UIImage *imageUser;
dispatch_async(concurrentQueue, ^{
imageUser = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString: [NSString stringWithFormat:@"http://www.hugt.co.uk/userimage/%d/userImage.jpg", postInfo.userId]]]];
dispatch_async(dispatch_get_main_queue(), ^{
userImage.image = imageUser;
});
});
}else{
UIView *viewImage = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 30, 30)];
viewImage.backgroundColor = [UIColor colorWithRed:132.0f/255 green:132.0f/255 blue:132.0f/255 alpha:1.0f];
[self.contentView addSubview:viewImage];
userImage = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 20, 20)];
UIImage *imageUser = [UIImage imageNamed:@"defaultuser.jpg"];
userImage.image = imageUser;
[viewImage addSubview:userImage];
}
labelUserName = [[UILabel alloc] initWithFrame:CGRectMake(50, 8, 200, 16)];
labelUserName.textColor = [UIColor colorWithRed:56.0f/255 green:56.0f/255 blue:57.0f/255 alpha:1.0f];
labelUserName.text = [NSString stringWithFormat:@"%@ %@ posted...", postInfo.firstName,postInfo.lastName];
//labelFirstName.textAlignment = NSTextAlignmentCenter;
labelUserName.font = [UIFont fontWithName:@"Helvetica" size:12];
labelUserName.userInteractionEnabled = YES;
[self.contentView addSubview:labelUserName];
labelCreated = [[UILabel alloc] initWithFrame:CGRectMake(50, 24, 200, 16)];
labelCreated.textColor = [UIColor colorWithRed:86.0f/255 green:152.0f/255 blue:179.0f/255 alpha:1.0f];
labelCreated.text = [NSDateFormatter localizedStringFromDate:postInfo.timeStampCreated dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterMediumStyle];
labelCreated.text = [labelCreated.text stringByReplacingOccurrencesOfString:@"AM" withString:@""];
labelCreated.text = [labelCreated.text stringByReplacingOccurrencesOfString:@"PM" withString:@""];
//labelFirstName.textAlignment = NSTextAlignmentCenter;
labelCreated.font = [UIFont fontWithName:@"Helvetica" size:12];
labelCreated.userInteractionEnabled = YES;
[self.contentView addSubview:labelCreated];
labelMessage = [[UILabel alloc] initWithFrame:CGRectMake(50, 43, 210, 9999)];
labelMessage.textColor = [UIColor colorWithRed:141.0f/255 green:142.0f/255 blue:142.0f/255 alpha:1.0f];
labelMessage.text = postInfo.message;
//labelMessage.numberOfLines = 0;
//labelFirstName.textAlignment = NSTextAlignmentCenter;
labelMessage.font = [UIFont fontWithName:@"Helvetica" size:12];
labelMessage.userInteractionEnabled = YES;
labelMessage.lineBreakMode = NSLineBreakByWordWrapping;
labelMessage.translatesAutoresizingMaskIntoConstraints = NO;
[labelMessage sizeToFit];
[self.contentView addSubview:labelMessage];
//NSDictionary *views = NSDictionaryOfVariableBindings(labelMessage);
//labelMessage.translatesAutoresizingMaskIntoConstraints = NO;
[self.contentView addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:|-45-[labelMessage(>=10)]-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:NSDictionaryOfVariableBindings(userImage,labelUserName,labelCreated,labelMessage)]];
[self.contentView addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"H:|-10-[labelMessage(==210)]-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:NSDictionaryOfVariableBindings(userImage,labelUserName,labelCreated,labelMessage)]];
//self.contentView.translatesAutoresizingMaskIntoConstraints = NO;
//self.clipsToBounds = YES;
//[self.contentView addSubview:viewPostMessage];
}
最佳答案
垂直约束定义为距离 super View 顶部有 45 点的边距,距离 super View 底部的默认边距为 20 点,最小标签高度为 10 点。这意味着 contentView 的最小高度应该是 75 点。要使这些约束正确无误地适应,您必须减少边距或增加 contentView 的大小。
要删除默认边距限制,您可以简单地删除破折号,如下所示。
@"V:|-45-[labelMessage(>=10)]|"
水平约束也可能需要调整。它的约束定义为距离 super View 左侧 10 点,距离 super View 右侧的默认边距,标签的精确宽度为 210 点。您可能希望删除这三个约束之一以防止任何冲突。
这是一个删除尾随约束的示例。
@"H:|-10-[labelMessage(==210)]"
关于IOS,NSLayoutConstraint 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25831844/
我正在尝试将 UIView 添加到 UITableView 的标题,然后,使用 NSLayoutConstraints 我想给它一个高度。 我已经浏览了 Apple Docs 和 WWDC 2012
我正在使用 Xcode 9 beta 5 。我务实地添加了反向操作 addConstraint(NSLayoutConstraint.constraints(withVisualFormat: "H:
我使用的是 XCode 版本 9.0 (9A235)、macOS Sierra 版本 10.12.6 (16G29)、iOS 11.0。 我需要将约束添加到数组中,然后我需要激活它。 为此我确实喜欢.
我正在通过代码构建 UICollectionViewCell 界面。一切正常,除了正确的约束。当我运行应用程序时,标题标签的右边距为零。这是我的代码 let titleLabel: UILabel =
我的代码中有两个类,一个是NameCell ,其中包含一个带有文本的简单 UILabel。第二个是NameValueCell ,它继承自该类,但还添加了属性 UIView *valueView . 需
我正在尝试设置一个面板来显示一些信息。我无法让自动布局按我的意愿工作。 这就是我想要做的事情: 我有一个 headerView、一个 UIImageView 和 5 个标签。我希望标签垂直排列,我希望
各位同事, 我开发了一个自定义键盘。键盘类型(字母、数字、特殊字符)之间的切换速度存在问题。这是由于每次重新绘制按钮时的事实。 NSLayoutConstraint我设置如下: 有一个类Keyboar
我试图对 View 内的标签 -> dateLabel 施加约束,这些是我给出的约束: let horizontalConstraint = NSLayoutConstraint(item: date
我使用编程约束将 View 定义为 iOS 屏幕上的弹出窗口。 let stopTimer = StoppageTimer(frame: CGRect.zero) 该 View 本身包含一个堆
我想将 2 个按钮移动到屏幕宽度的中心。它应该看起来像: |SecondButton(100)->| 我从第一个按钮开始。 var const = NSLayoutConstraint(item: f
这是我第一次尝试使用约束,所以请原谅这个初级问题。 我希望能够设置一系列约束,以便 subview 小于 View 宽度的 75% 或 View 宽度的 75%。因此,如果我的 subview 的宽度
我有一个在容器中的 View 在我放置在这个容器中的一些 View Controller 中,我想要全局边距 但我不知道如何将它们添加到容器中。 我的意思是我不知道如何定义 NSLayoutConst
我正在尝试通过 for 循环创建 UILabel,该循环从 NSArray 获取其 NSInteger。循环工作正常,但我看不到所有顶点一个接一个。我肯定是有约束的错误。你能帮帮我吗? 根据我发布的这
我在 UIView 中有 2 个 UILabel: [headerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat
我下面的代码使用代码无 Storyboard 来显示对象。该项目已构建,但我看不到我试图以编程方式放置的文本字段。我不知道为什么代码没有出现。我试图不使用 Storyboard。 var enter
我在 Web View 和工具栏之间添加约束时遇到问题。我正在使用以下代码但出现错误。 NSDictionary *viewsDictionary6 = NSDictionaryOfVariableB
我有一个自定义 UITableViewCell,我正在尝试自动布局 UILabel,因为它的文本可以有任意长度,但我收到此错误: Break on objc_exception_throw to ca
我有一个包含 UIWebview 的 UIView。 UIView 具有前导和尾随约束 (20pt)。现在,如果 UIWebview 放大,我通过 UIScrollViewDelegate:scrol
我有一个程序化的 UIToolBar,它是在我的某个 ViewController 的 viewWillAppear: 方法中创建和绘制的。我有 NSLayoutConstraint 设置以将我的 t
我有一个自定义的 UITableViewCell。该单元具有三个标签。最左边的“金额”标签具有以下约束。 在单元格的右侧,我有另一个标签,“Label Dollar Amount”。它具有以下约束:
我是一名优秀的程序员,十分优秀!