Tag: autolayout

如何在UIScrollView中将UIImage视图缩放为一个带有Autolay的正方形

我一直在努力学习自动布局(最后)。 我想有一个垂直滚动的UIScrollView,它包含视图的所有内容。 我想将UIImage视图固定在滚动视图的顶部,并保持图像正方形(scaleToFill)。 基本上我想这样做(只有我想用自动布局来做): 在屏幕边界内,我无法保持图像的高宽比。 每当我添加长宽比约束时,imageView会增长到600点(我认为png的宽度),但是我希望它只是和屏幕一样宽。 我想我正在为UIImageView正确设置约束,因为如果我摆脱scrollView,并直接放在视图imageViw然后它似乎做我想要的。 诀窍是把它放在scrollView中。 这是我目前的设置: 滚动视图上的4个垂直/水平空间约束全部设置为常量0。

closures“使用Autolayout”导致应用程序只能在纵向模式下运行

我想我的应用程序与iOS 5兼容,所以我必须在XIB文件中禁用“使用Autolayout”。 整个应用程序被devise为在横向模式下运行。 当禁用自动布局(无论是在iOS 5还是iOS 6)启动应用程序时,应用程序始终以纵向模式启动,并拒绝旋转为横向。 在Info.plist中, Supported Interface Orientations (iPad)仅被设置为横向。 我究竟做错了什么? 这仅在禁用自动布局之后才会发生。

UITableView tableFooterView显示在UITableView的顶部 – 错误

我创build了一个非常简单的testing用例来重现这个问题。 我想以编程方式设置页脚视图到一个tableview。 请注意,我指的是在tableview的底部页脚 – 不是部分页脚(大多数堆栈溢出的答案混淆了他们)。 这是我非常简单的代码: – (void)viewDidLoad { [super viewDidLoad]; UIView *footerContainer = [[UIView alloc] initWithFrame:CGRectZero]; footerContainer.backgroundColor=[UIColor greenColor]; footerContainer.translatesAutoresizingMaskIntoConstraints=NO; [footerContainer addConstraints:@[[NSLayoutConstraint constraintWithItem:footerContainer attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:100 ], [NSLayoutConstraint constraintWithItem:footerContainer attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:[UIScreen mainScreen].bounds.size.width ]]]; self.mytableview.tableFooterView=footerContainer; [self.view setNeedsLayout]; [self.view layoutIfNeeded]; } – (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return 10; } – (UITableViewCell […]

Autolayout UILabel在第二视图出现时高度发生变化

我在TableHeaderView中有一个dynamic的UILabel( 见这个问题 ),一切都没问题 ,但是如果我把标签的文本设置为nil或者@""那么标签就会保持文本的高度在。 我正在改变我以presenting modally的不同viewController中的文本。 所以我想通过3个步骤展示给你: 原始状态 将文本设置为@"" 在这一步中,我介绍了viewController删除文本,然后closuresviewController回到这个视图。 重新出现这个视图 所以我必须打开编辑视图控制器才能再次解雇它。 然后就像我想要..: 任何想法为什么? 我在viewWillAppear方法中像这样重新调整TableViewHeader的大小: – (void)resizeTableViewHeader { //GET THE SIZE OF THE CONTAINER CGSize fittingSize = [self.header systemLayoutSizeFittingSize: UILayoutFittingCompressedSize]; self.header.frame = CGRectMake(0, 0, 320, fittingSize.height); self.tableView.tableHeaderView = self.header; } 任何想法,为什么我必须访问两次查看?

UICollectionView单元格,自动布局和collectionview布局的变化

我有一个集合视图,显示单元格看起来像一个经典的表格视图与图像,标题和副标题。 我希望能够将布局切换为仅显示图像的网格,连续3个。 集合视图单元格的内容被放置在具有自动布局的故事板中。 imageView有以下限制: 引导0到左边的单元格边缘 顶部0到顶部小区边缘 底部0到底部细胞边缘 固定宽度 标签的水平空间 在更改布局之后,imageView应该对容器的所有边都有零约束,以便它完全填充它。 目前,当我改变布局的应用程序崩溃Unable to simultaneously satisfy constraints. 。 什么是最好的方式来解决布局改变时的约束,甚至可能取代单元格类?

带有AutoLayout错误标题的UISegmentedControl

我有一个自定义的UITableViewCell在左侧有一个标签在右边的UISegmentedControl 。 我只是习惯于在代码中使用自动布局,这是我在我的自定义单元格(使用UIView + AutoLayout ): -(void)updateConstraints { self.titleLabel.translatesAutoresizingMaskIntoConstraints = NO; self.segmentedControl.translatesAutoresizingMaskIntoConstraints = NO; [self.titleLabel pinToSuperviewEdges:JRTViewPinLeftEdge inset:DB_AUTOLAYOUT_DEFAULT_INSET]; [self.titleLabel centerInContainerOnAxis:NSLayoutAttributeCenterY]; [self.segmentedControl pinToSuperviewEdges:JRTViewPinRightEdge inset:DB_AUTOLAYOUT_DEFAULT_INSET]; [self.segmentedControl pinAttribute:NSLayoutAttributeBaseline toAttribute:NSLayoutAttributeBaseline ofItem:self.titleLabel]; [super updateConstraints]; } 我的问题是,分段控件的第一个标题总是错位: 这就是iOS 6上的样子: 在iOS 7上: 所以第一个问题是:我如何解决这个问题? 其他,切向问题:我是否通过将自动布局代码放入updateConstraints来做正确的事情,还是应该只应用一次约束?

animation时无法同时满足约束条件

我有六个用户约束设置与IB看起来像这样: H:|-(593)-[UIView(411)]-(20)-| V:|-(20)-[UIView(288)]-(396)-| 我通过更改约束然后调用layoutIfNeeded来增长和缩小视图。 例如,为了发展我的观点,我会做: H:|-(20)-[UIView(984)]-(20)-| V:|-(20)-[UIView(663)]-(20)-| 然后打电话 [UIView animateWithDuration:.5 animations:^{ [self.view layoutIfNeeded]; }]; 这种技术会增长和缩小我的观点,它看起来不错,但我给了一个相当混乱的警告: 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 […]

UIScrollView无法使用自动布局放大iOS7

我创build了这个层次结构的UIScrollView(我的示例是AutoLayout) UIViewController UIView UIScollView ContainerView UIImageView 一切工作正常在iOS 8 – 9期待iOS 7 我可以在iOS 7中缩放我的ImageView 我已经实施: -(void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; CGSize scrollableSize = CGSizeMake(self.imageView.frame.size.width,self.imageView.frame.size.height); [self.scrollView setContentSize:scrollableSize]; self.scrollView.backgroundColor = [UIColor whiteColor]; self.scrollView.minimumZoomScale = 1.0 ; self.scrollView.maximumZoomScale = 4; } -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { return self.containerView; } 我已检查此链接: UIScrollView缩放与自动布局 滚动视图不能运作IOS 7 问题 缩放不适用于iOS 7,(我需要使用自动布局),我的UIImageview应该有一个AspectFit比率 我上传我的示例在github上: sampleProject

Autolayout在iOS 8上工作正常,但在iOS 6和7(我使用XCode 6.2)上performance不佳,

我正在使用自动布局来正确地布局UICollectionViewCell中的一些视图。 它适用于iOS 8,但是当我尝试在iOS 7或iOS 6上运行它时,单元格的外观在每次布局时都会有很大的变化(有时我会发现尺寸和位置的细微变化 – 一个或两个像素 – 有时会变大更改,导致一些相当混乱的单元格)。 我发誓我努力find有同样问题的人,但我不能。 我没有find任何答案可以帮助我解决甚至接近理解这个问题。 我将不胜感激任何关于如何解决甚至更好的debugging的意见。 更多信息 我使用Interface Builder来创build视图并设置约束。 单元格的视图总共有17个子视图,包括UIViews和它们的子视图,并且它们有很多约束条件。 每次按下button,我都会更新一个UIColletionView(包括我自定义的单元格的表格)。 我在这里发现的令人愤慨的是,当我运行应用程序时,每次按下button,单元格的子视图都会改变它们的位置和大小。 我从不改变任何约束或框架编程。 此外,在iOS6上的行为是最糟糕的。 这些框架的变化更大,自动布局运行非常缓慢(即使只有一个单元格,也需要3到10秒才能更新iPod Touch 5th Generation上的集合视图)。 最糟糕的是,如果我不断更新UICollectionView,有时XCode会抱怨约束不能同时满足。 但大多数时候它工作得很好。 我也遇到一些设备崩溃,当从超级视图中删除我的一些自动布局function的视图。 我发现这是Autolayout引擎的一个奇怪的行为,由于浮动错误可能会导致一些错误的计算。 我想知道这两个问题是相关的。 因为在search了几乎整整一天之后,我在整个networking上找不到任何帮助,所以我开始认为这是一个愚蠢的解决scheme的愚蠢的错误。 我确实希望如此。 提前致谢! SCREENSHOTS 我添加了一些截图来帮助你看到问题。 为了获得这些屏幕截图,我使用iOS 6在iPod Touch第5代上运行应用程序。iPhone 4和iOS 7的行为不同(它performance得好多了,但是我仍然可以看到元素在一些像素周围移动)。 每次我点击“更新”button,我从其超级视图(整个屏幕)中删除包含UICollectionView的视图并重新添加。 我不摧毁这个观点,它只创build一次。 我认为这可能是问题的根源(一些自动布局计算缓冲区保存了之前布局的值),但是破坏它并不能解决问题(尽pipe它确实使得位移不那么频繁和令人不安,但是以性能为代价) 。 这是预期的行为。 这是应用程序打开时的视图: 错位的意见。 这是第一次按下“更新”button的结果: 第二次按下button后的结果: 第三次按下button后的结果: 如果我继续按下button,我会在屏幕截图3和4之间交替布局(或者至less它们看起来很像)。 我给自动退出,这是为什么 那么,我真的放弃使用自动布局。 我花了将近一个星期的时间学习了很多东西(特别是布置和animation视图)。 我认为这是一个奇妙而强大的function,我学会了去爱它。 但是,我需要支持iOS6和iOS7。 […]

使用自动布局pipe理UITextField的dynamic位置

我的客户的要求如下: 我将创build大约15个textField(在服务器上定义)的registry单。 注册字段中的字段信息来自服务器。 在某些情况下,有可能不需要某些字段。 所以,我会得到这个特定情况下所需的字段。 例如,假设服务器上的预定义字段数是15。 即名,姓,电话号码,出生date,图片,电子邮件,地址,邮政编码等 但有些情况下,在某些情况下,电子邮件ID字段不是必需的。 所以我不会从服务器获得该字段。 所以,应用程序方面,我必须从预定义的字段列表中隐藏电子邮件文本字段。 也有可能多个(任何字段)字段不是必需的。 所以我也要把它们藏起来 我想通过图像表示来解释情况如下。 情况1: 案例2: 在这种情况下,我正在做的是(应用程序端)我为所有预定义的字段创buildtextFields。 那么我隐藏的文本域是不需要的每个服务器响应。 即电子邮件文本字段或任何其他textField。 现在我的问题是,如果任何字段不是必需的,那么文本字段应该重新定位,我在我的应用程序中使用自动布局。 我隐藏电子邮件文本框然后如何设置下一个文本框的位置,如联系号码,出生date等?