Tag: 布局

如何更改表视图单元格中的textview高度约束?

关于如何使用Autolayout和TextView里面的dynamic单元格高度存在很多问题。 这是故事 我遵循这篇文章的iOSdynamic表格视图单元格与不同的行高度和Autolayout 。 在这种情况下,我们用TextViewreplace文章中的第二个标签,使用相同的约束 TextView没有内容大小的标签。 所以我们必须使用sizeThatFits并在TextView上创build高度约束,就像这样。 这个高度约束是来自Nib的IBOutlet ViewController.m – (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { Item *item = self.dataSource.items[indexPath.row]; [self.prototypeCell configureWithModel:item]; [self.prototypeCell updateConstraintsIfNeeded]; [self.prototypeCell layoutIfNeeded]; self.prototypeCell.textViewHeightConstraint.constant = [self.prototypeCell.textView sizeThatFits:CGSizeMake(self.prototypeCell.frame.size.width, CGFLOAT_MAX)].height; [self.prototypeCell updateConstraintsIfNeeded]; [self.prototypeCell layoutIfNeeded]; return [self.prototypeCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height; } CustomCell.m – (void)configureWithModel:(Item *)model { self.textView.text = model.content; } 然后,我在控制台中看到 Unable to simultaneously satisfy constraints. Probably at […]

UISearchDisplayController表视图重叠search栏

我有一个UITableViewController子类,以iPad上的模式视图显示。 视图控制器有一个UISearchDisplayController子类,在表的标题视图中包含一个UISearchBar 。 子类UISearchDisplayController被称为NoAnimationSearchDisplayController ,我已经覆盖了- (void)setActive:(BOOL)visible animated:(BOOL)animated方法,以防止search栏在设置为活动状态时导航到导航栏中。 方法重写如下… – (void)setActive:(BOOL)visible animated:(BOOL)animated { if (self.active == visible) { return; } [self.searchContentsController.navigationController setNavigationBarHidden:YES animated:NO]; [super setActive:visible animated:animated]; [self.searchContentsController.navigationController setNavigationBarHidden:NO animated:NO]; if (visible) { [self.searchBar becomeFirstResponder]; } else { [self.searchBar resignFirstResponder]; } } 我遇到的问题是,当我search,结果显示在我的search显示控制器的表视图,一切都看起来很好,直到我试图向下滚动列表,在这一点上单元格内的内容出现在search栏,如下面的屏幕所示: search栏被设置为UISearchBarStyleMinimal并且透明度被启用。 任何人都可以让我知道如何停止这个内容重叠的search栏? 理想情况下,内容会在search栏下消失,就好像它是视图的结尾一样。

在具有特定约束的滚动视图中显示图像(使用自动布局)

我想在我的视图控制器中显示标题和图像下方。 我的约束是: 标签可以在屏幕顶部的50px处 标签可以有一个或多个行 图像可以在我的标签的50px 图像必须具有屏幕的宽度 滚动视图必须根据所有这些元素的大小进行滚动 我有一个滚动视图的视图控制器: – 视图控制器 – -视图 ——滚动视图 ———容器视图 – – – – – – 标签 – – – – – – 图片 我想要使​​用故事板和自动布局。 我已经成功地将标签正确地alignment,但是我无法在标签的50px处显示图像并保持它的比例。 如果我使用“方面适合”或“比例填充”imageview,在这种情况下,标签和图像是在我想要的50px。 方面适合: 随着规模填补: 但是,如果我使用“方面填充”,我不明白如何显示图像。 使用方面填充: 我在这个问题上已经有3天左右的时间了,这让我发疯。 我也尝试使用隐形的“间隔”视图…我没有find解决scheme。 我用Xcode 6快速开发。 编辑1:定位的形象是与vacawamabuild议解决 为您的imageView和一个属性添加@IBOutlet到您的视图控制器以跟踪约束: @IBOutlet weak var imageView: UIImageView! var aspectRatio:NSLayoutConstraint? 然后添加一个新的图像: let tree = UIImage(named: "WinterTree.jpg")! imageView.image […]

在iOS中pipe理布局

我是iOS开发的新手,我在JAVA Swing和Windows应用程序方面拥有坚实的背景。 我想学习如何在iOS进行布局? 我猜iOS没有像Java Swing中的“布局pipe理器” 。开发UI的唯一方法是为每个控制器指定大小和位置?

以编程方式添加与Autolay的UISLider

我试图以编程方式添加一个UISlider到我的视图,包括约束,以便它的宽度适应整个屏幕宽度。 这是我到目前为止: //2 Add UISlider self.slider = [[UISlider alloc] init]; [self.view addSubview:self.slider]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.slider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:0]]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.slider attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1 constant:0]]; [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.slider attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1 constant:0]];

适应iPad的自适应布局

我正在关注这篇文章,在ios中构build适应性布局, 为iOS 8构build自适应用户界面 。 它将在iPhone上正常工作。 现在我不想给iPad一样的效果。 但对于iPad自适应布局是行不通的。 这里是iPhone5中的应用截图(绿框代表view1,黄框代表view2) 1.肖像模式 风景模式 问题 :iPad如何能达到同样的效果? 展开的问题:如何在横向模式下设置iPad的初始方向?

“魔术移动”效果自定义转换

我试图让两个视图控制器之间的自定义过渡。 首先,这里有一张图片来说明我想要的东西: 我想要一个UICollectionViewCell扩展到整个屏幕。 在这个单元格中,子视图与Autolayout放在IB中。 我只是想让每个子视图都转到新的位置。 所以我尝试了subview.frame = newSubview.frame在animation块,但它不工作(因为Autolayout我认为)。 我想在animation发生的时候删除约束条件,但是不起作用。 我也试着让@IBOutlets的约束和改变不变的属性。 这是我的代码: let detailView = detailViewController.view let cellView = self.selectedCell container.addSubview(cellView!) let duration = self.transitionDuration(transitionContext) UIView.animateWithDuration(duration, delay: 0.0, options: .CurveEaseInOut, animations: { let newFrame = detailViewController.view.frame cellView!.frame = newFrame cellView!.imageView.frame = newFrame cellView!.labelTopConstraint.constant = 27 cellView!.labelRightConstraint.constant = 8 cellView!.layoutIfNeeded() } … 实际上,当animation开始的时候,标签会卡到一个位置,然后移动,最后它们不在正确的位置。 有任何想法吗 ? 谢谢

调整UITextField的宽度以在横向上填充工具栏

在UIToolbar ,我已经添加了一个UITextField到中间的栏(它被作为一个UIBarButtonItem添加)与旁边的另一个UIBarButtonItem (动作button)。 我在左边和右边添加了灵活的空格键button项目。 它在纵向上看起来不错,但是当我旋转到横向时,它将它们居中并看起来不错,但是我需要拉伸文本字段来填充宽度,并将最后一个button清除到右侧 – 完全像在Messages中一样iPhone和iPad。 我认为自动布局会做的伎俩,但苹果声明,你不能创buildUIBarButtonItem的约束。 实际上,当我select任何栏button或文本字段时,将不允许创build任何约束。 你能让我知道如何做到这一点? 谢谢! 编辑:我已经尝试了一些固定/灵活的空间的其他组合。 当我不添加任何时,文本字段和分享button被推到左边: 如果相反,我做固定的空间,它看起来是完全相同的如上0宽度,或者如果我设置一个宽度,那么它显然会推它们。 最右边的最后一个空间没有任何影响 – 它不是固定在最右边,所以它离开了屏幕。 我试了左边的一个固定的空间,右边是一个固定的空间,中间的空间固定(或者没有中间的空间),看起来像上面的截图。 然后我改变了中间的一个灵活,结果是这样的: 如果我把第一个变为灵活的,中间没有(或者如果我添加一个固定的),然后在右侧移动,它会移到右侧: 如果第一个是灵活的,中间是灵活的,右边是固定的,这是它的外观: 在所有情况下,文本字段的宽度与最初在故事板中设置的静态值保持相同。 我认为问题是,当您通过拖动框架来设置宽度时,没有蓝色的指引来捕捉,所以它将始终保持相同的宽度。 我错过任何空间组合吗? 如果我不能在界面生成器中实现所需的行为,那么如何在代码中完成此操作?

当主导航栏提示时iOS 7细节布局

我遇到了iOS 7的布局问题: 重现创build一个简单的master-detail-app并在MasterViewController.m中插入这一行: self.navigationItem.prompt = @"Master"; 这在DetailViewController.m中 : self.edgesForExtendedLayout = UIRectEdgeNone; 两行都在viewDidLoad 。 当导航栏缩小到正常尺寸时,详细视图的框架不能正确更新。 我应该如何解决这个问题?

iPhone X安全区出现在不透明工具栏下方

我无法正确地将iPhone X上的视图限制在底部不透明工具栏上方。 你可以在这里看到被限制在安全区域底部的视图被工具栏遮住了: 而对于其他iPhone型号和尺寸,视图正确显示在工具栏上方: 这里是我添加的约束: 有人可以好好解释我该怎么办?