Tag: 自动布局

在iOS 8中自动调整UITableViewCell的大小

我有一个UITableViewCell子类,其中包含一个多行标签,我希望单元格根据该标签的内容dynamic调整自己的大小。 我知道,iOS 8引入了基于AutoLayout约束的自动resize的单元格,并且我已经发现了几个这样的例子,但是我仍然在实现这种行为时遇到了一些麻烦。 这是我的updateConstraints实现: – (void)updateConstraints { [super updateConstraints]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[_nameLabel(==20)]-10-[_tweetLabel]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_nameLabel, _tweetLabel)]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[_avatarView]-10-[_nameLabel]-10-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_avatarView, _nameLabel)]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_nameLabel]-10-[_tweetLabel]-10-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_nameLabel, _tweetLabel)]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[_avatarView]-10-[_tweetLabel]-10-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_avatarView, _tweetLabel)]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[_avatarView(==45)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_avatarView)]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[_avatarView(==45)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_avatarView)]]; } 在表视图控制器中,我将行高设置为UITableViewAutomaticDimension(并设置了估计的行高度)。 在运行时,我得到一系列的自动布局错误,所有的表格视图单元格几乎完全重叠。 自动布局冲突在以下约束之间: V:|-(10)-[_nameLabel] V:[_nameLabel(20)] […]

iOS:Autolayout导致UIScrollView不滚动

我已经build立了一个UIScrollView ,我想要显示12个图像(只适合在屏幕上8)水平布局。 在下面的图片中,你可以看到我遇到的问题(这使我的滚动视图不滚动),我的约束和我添加了故事板上的UIScrollView : 我已经调用了以下方法-(void)viewDidLoad ,其中我“设置”我的scrollview(itemList是我的滚动视图属性和itemNames一个数组与图像的名称): – (void)setupHorizontalScrollView { self.itemList.delegate = self; [self.itemList setTranslatesAutoresizingMaskIntoConstraints:NO]; [self.itemList setBackgroundColor:[UIColor blackColor]]; [self.itemList setCanCancelContentTouches:NO]; self.itemList.indicatorStyle = UIScrollViewIndicatorStyleWhite; self.itemList.clipsToBounds = NO; self.itemList.scrollEnabled = YES; self.itemList.pagingEnabled = NO; NSInteger tot=0; CGFloat cx = 0; for (; ; tot++) { if (tot==12) { break; } UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[self.itemNames objectAtIndex:tot]]]; […]

iPhone 6和iPhone 6将如何为iPhone 4和iPhone 5构build应用程序

苹果已经宣布了两款屏幕尺寸iPhone 6和6 plus。 iPhone 4和iPhone 5应用程序商店中的应用程序将会发生什么变化?这些新手机中的应用程序是否会被拉长或布局扭曲? 请帮助我,因为我最近在应用程序商店提交了两个应用程序,正在等待审核。 所以我应该改变他们,否则他们会正常工作。 因为我没有在这些应用程序中使用自动布局。 谢谢。

AutoLayout,约束和animation

假设我有这个UIView : 与这些相对的限制: @property (strong, nonatomic) IBOutlet NSLayoutConstraint *leftMarginConstraint; @property (strong, nonatomic) IBOutlet NSLayoutConstraint *topMarginConstraint; @property (strong, nonatomic) IBOutlet NSLayoutConstraint *widthConstraint; @property (strong, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint; 好,现在让我们假设当用户点击那个UIButton ,button应该移动到视图的右下angular。 我们可以很容易地使用两个约束来定义button和底部布局指南之间的底部空间,以及从button和视图右边缘的右边空间(尾部空间)。 问题是UIButton已经有两个约束(left / top)和两个约束来定义它的宽度和高度,所以我们不能添加两个新约束,因为它们会与其他约束冲突。 一个animation场景的简单而普遍的情况,但是却造成了一些问题。 想法? 编辑 当用户点击UIButton ,我需要button: 将其标题更改为“第二” 等待1秒,然后移动到右下angular(移除顶部和左侧边距约束,并添加底部和右侧边距约束) 将其标题更改为“第三” 等待1秒,然后移到右上angular(移除底部边距约束并添加顶部边距约束) 我真的很想使用这个混乱的代码吗? @implementation ViewController { NSLayoutConstraint *_topMarginConstraint; NSLayoutConstraint *_leftMarginConstraint; NSLayoutConstraint *_bottomMarginConstraint; NSLayoutConstraint *_rightMarginConstraint; } […]

出现键盘时调整屏幕大小

我正在构build一个聊天应用程序。 出现键盘时,必须移动文本框。 我正在用下面的代码做这个: func keyboardWillShow(notification: NSNotification) { if let userInfo = notification.userInfo { if let keyboardSize = (userInfo[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() { kbHeight = keyboardSize.height self.animateTextField(true) } } } func keyboardWillHide(notification: NSNotification) { self.animateTextField(false) } func animateTextField(up: Bool) { var movement = (up ? -kbHeight : kbHeight) UIView.animateWithDuration(0.3, animations: { self.view.frame = CGRectOffset(self.view.frame, 0, movement) }) […]

奇怪的崩溃时解雇视图控制器,自动布局的责任?

我正在经历一个非常奇怪的崩溃,这里是回溯。 * thread #1: tid = 0x2403, 0x3379516c CoreFoundation`CFHash + 8, stop reason = EXC_BREAKPOINT (code=EXC_ARM_BREAKPOINT, subcode=0xdefe) frame #0: 0x3379516c CoreFoundation`CFHash + 8 frame #1: 0x33797a9c CoreFoundation`CFBasicHashRemoveValue + 1408 frame #2: 0x337974ee CoreFoundation`CFDictionaryRemoveValue + 166 frame #3: 0x3420988e Foundation`-[NSISEngine removeConstraintWithMarker:] + 562 frame #4: 0x34211dbe Foundation`-[NSLayoutConstraint _removeFromEngine:] + 230 frame #5: 0x35a954ec UIKit`-[UIView(UIConstraintBasedLayout) _layoutEngine_willRemoveLayoutConstraint:] + […]

Xcode AutoLayout,使边距与高度成正比

我有一个很大的时间搞清楚如何使两个对象的边距成比例。 如果我在Xcode上select宽高比,它可以让我select调整对象屏幕高度的高度。 那不是我的情况。 我希望button和屏幕底部之间的边距与屏幕高度成正比。 而我希望使用Xcode“No Code”来完成。 您的支持是高度赞赏。 谢谢

故事板和自动布局:如何制作圆形图像

在故事板(xcode 6)我想要一个从Facebook的循环用户图像configuration文件。 所以我使用自动布局在故事板上创build了这个界面: 然后,使用Facebook iOS sdk我采取用户configuration文件(使用swift): var facebookProfileUrl = "http://graph.facebook.com/\(userId!)/picture?type=normal"; 在故事板中,我将图像设置为“适合缩放”模式。 要使图像视图循环使用下面的代码: self.facebookProfileImage.layer.cornerRadius = self.facebookProfileImage.frame.size.width / 2; self.facebookProfileImage.clipsToBounds = true; 当我运行代码时,无论如何,图像看起来不是循环的: 我想这个问题是自动布局,但我不知道。 我怎样才能使图像完美的圆形?

具有自动布局和节重装的UITableViewHeaderFooterView子类不能很好地协同工作

我试图将自动布局合并到我的UITableViewHeaderFooterView子类。 这个class很基本,只有两个标签。 这是完整的子类: @implementation MBTableDetailStyleFooterView static void MBTableDetailStyleFooterViewCommonSetup(MBTableDetailStyleFooterView *_self) { UILabel *rightLabel = [[UILabel alloc] init]; _self.rightLabel = rightLabel; rightLabel.translatesAutoresizingMaskIntoConstraints = NO; [_self.contentView addSubview:rightLabel]; UILabel *leftLabel = [[UILabel alloc] init]; _self.leftLabel = leftLabel; leftLabel.translatesAutoresizingMaskIntoConstraints = NO; [_self.contentView addSubview:leftLabel]; NSDictionary *views = NSDictionaryOfVariableBindings(rightLabel, leftLabel); NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|-10-[leftLabel]-(>=10)-[rightLabel]-10-|" options:0 metrics:nil views:views]; [_self.contentView addConstraints:horizontalConstraints]; // center […]

UICollectionView,全宽单元格,允许自动布局dynamic高度?

这是关于当前iOS开发的一个相当基本的问题,我从来没有find一个好的答案。 在(说)垂直的UICollectionView , 是否可以有全angular单元格 ,但是允许dynamic高度由自动布局控制? (如果你是iOS新手“dynamic高度”,这意味着单元格有一些文本视图,可以是任何长度或图像可能是不同的大小,所以最终每个单元格是完全不同的高度。 如果这样怎么样? 这也许是“iOS中最重要的问题,没有很好的答案”。