Tag: autolayout

居中使用NSLayoutConstraint大UIView

我是新来的使用Autolayouts,即使这是我第一次尝试。 无论我做什么,结果都是以白色屏幕结束。 这是我的尝试。 我有一个UIView ,让我说一个框架(60, 154, 200, 200) parentView 。 这是self.view的子视图。 然后我有一个dynamic的视图,说dynamic视图的帧(0, 0, 260, 100) dynamicView (0, 0, 260, 100)和帧的label (15, 25, 230, 50) dynamicView (15, 25, 230, 50) ,这是一个子视图dynamicView 。 当我将dynamicView作为子视图添加到dynamicView视图中时,它会从parentView的界限中parentView 。 所以,我想调整dynamicView和它的子( label )的大小,以便它的位置是parentView dynamicView中心, parentView dynamicView是在parentView的边界内。 我第一次尝试设置clipsToBounds ,它不工作在Xcode5,iOS7。 所以下一个选项是使用NSLayoutConstraint实现这个。 我不知道。 我欢迎你的想法。

无法将UILabel的Y位置与Autolayout“on”一起移动

在这里,我一定会错过一些非常明显的东西,但这一直是一个令我感到灰心的问题。 在xcode 4.5的iOS项目中,我在XIB中有一些标签,一个在另一个之上,在一个占用UIView的UIScrollView中。 每个标签都和视图一样宽,每个标签大约20px。 有时,其中一个标签没有任何信息,所以它被设置为不可见,下面的标签应该向上移动以占据空白区域。 问题是,如果在视图上将“自动布局”选中为“closures”,则尽pipeUIScrollView不再滚动,但标签仍按照原样移动。 如果打开 ,标签不会移动,不pipe怎样。 这里是代码…我基本上只是使用一个快速的function来移动每个标签的高度不可见的标签。 [self moveObjectBy: self.festNameLabel moveByY:-(yearsLabel.frame.size.height-2)]; // this just quickly moves a label. – (void)moveObjectBy:(UIView *)lbl moveByY:(int)byHeight { CGRect newFrame = lbl.frame; NSLog(@"%f, %d", newFrame.origin.y, byHeight); newFrame.origin.y += byHeight; //yearsLabel.frame.size.height; lbl.frame = newFrame; } 当它运行时, NSLog显示它已经移动了,但是它不能在屏幕上移动。 我确定它与垂直空间约束有关,但它不会让我删除这个约束,它不会让我把它改变为除了视图顶部之外的空间。 就像我说的,我确定我错过了一些东西,但是我已经用尽了我所知道的一切…

如何将3个UIButtonalignment到UITableCellView的中心?

我如何将3个UIButtonalignment到UITableCellView的中心? 例如说我有3个标题为UIButton : 电子邮件 电话 Skype的 一个或多个UIButton可能被隐藏。 例如,如果电话UIButton被隐藏,那么只有电子邮件和Skype应该在中心alignment。 如果电话和Skype被隐藏,那么只有电子邮件应该在中心alignment。 当任何UIButton被隐藏时,可见的应该在中心alignment。 我想要将它们水平和垂直居中。

使用AutoLayout,当导航栏消失时,如何将UILabel放在同一个地方?

我有一个UILabel的视图控制器,它打印一些button时,打印一些单词。 点击该button时,导航栏被设置为隐藏。 所以我尝试了UILabel并在Interface Builder中给它提供这些约束: 但是对于这些,当我按下button时,UILabel随着导航栏的消失而跳下去,然后再次备份,自我纠正,看起来很糟糕。 无论使用什么导航栏,它都应该永久保留。 这是一个直接链接到一个简短的video,显示发生了什么。 我如何最好的去设置它,让UILabel保持原状? 项目: http : //cl.ly/1T2K0V3w1P21

UIScrollView框架在iOS 8和iOS 7上是不同的大小

我实现了一个视图控制器,只显示一个图像,并允许用户捏放大/平移图​​像周围。 它在iOS 7上效果很好,但在iOS 8上,滚动视图的框架大小不同,最终结果是iPhone上的图像放大得太远,在iOS 8上运行时放大了太多。这是因为滚动视图框架的宽度是600pt,这是故事板(使用大小类的Universal Storyboard)中的大小。 但我有自动布局约束,应该确保滚动视图延伸填补可用空间 – 它应该是iPad上的768pt。 这是在iOS 7,但不是iOS 8的情况。 这是设置:在界面生成器中,我有一个UIViewController ,其中包含一个UIView ,其中包含一个UIScrollView与自动布局限制尾随,领先,底部和顶部空间的超级视图。 然后在viewDidLoad : UIImage *image = [UIImage imageNamed:@"image"]; self.imageView = [[UIImageView alloc] initWithImage:image]; self.imageView.contentMode = UIViewContentModeScaleAspectFit; self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height); [self.scrollView addSubview:self.imageView]; self.scrollView.contentSize = image.size; #warning Bug here – scroll view frame is 600pt on iOS 8 – should […]

使用AutoLayout在不同高度的两列中堆叠

瞄准iOS 8.1 我正在使用AutoLayout在TableCell中布置许多标签。 其中一些标签是可选的,一些可以包装他们的文本。 它们分成两个“列”,这些列仅仅是TableCell的ContentView中的两个UIViews。 我的约束以编程方式应用。 第二次更新 没有下面的SwiftArchitect的答案 ,我不会解决这个问题,并已经接受了他的答案。 但是,因为我的代码都在代码中,所以在自定义表格单元格中,我还在下面添加了一个单独的答案 UPDATE 在试图阻止标签伸展到比他们需要的更大的尺寸时,我之前将SetContentHuggingPriority和SetContentCompressionResistancePriority设置为1000,因为我SetContentCompressionResistancePriority这是相当于说“ 我希望标签拥抱其内容到其确切的高度我不希望它被垂直压缩 “这个请求显然没有被AutoLayout所遵守,你可以在下面的红色和粉红色的例子中看到。 this.notesLabel.SetContentHuggingPriority(1000, UILayoutConstraintAxis.Vertical); this.notesLabel.SetContentCompressionResistancePriority(1000, UILayoutConstraintAxis.Vertical); 我删除了这些优先级的设置,标签不再被压扁,这是我的原始问题。 当然,现在某些标签被拉伸超出了他们需要的高度。 为什么删除拥抱和压缩优先级解决了我的问题? 我怎样才能得到红色框中的文本(红框不是以后添加的单元格的一部分)不扩展,而不会回到我以前的问题? 这里有几个截图,当压缩和拥抱的优先级设置时,它看起来像什么样子。 背景颜色用于debugging 一般的问题是,包含视图(紫色和紫色)​​正在缩小自己的大小。 正如你可以看到在顶部的“优先级3”正在被切断,因为左列容器不需要更高。 在下面的例子中没有优先级标签,但是EventDate被压扁了。

AutoLayout uitableviewcell在横向和iPad上计算基于肖像iPhone的高度

我正在学习/试验自动布局和UITableViewCell的。 前几天我问了另一个问题,我回答了我自己的问题,我仍然使用相同的约束/代码。 有关完整的代码,请参阅此处: AutoLayout多行UILabel剪切一些文本 。 在heightForRowAtIndexPath内部缩小它我正在使用一个自定义的UITableViewCell的实例来计算该行所需的高度。 这工作完美的肖像,但是当我切换到横向模式, systemLayoutSizeFittingSize返回单元格的高度相同,如果它是在肖像。 我已经打印出contentView和标签的框架,似乎没有更新。 这样做的结果是迫使标签增长留下了大量的空白。 标签显示在正确的宽度,在横向上,他们按照我的预期布置,如果我硬编码单元格的高度,它完美的作品。 它看起来像这样: 硬编码后(我想看起来像): 更糟糕的是,我在iPad上运行时也得到了相同的结果,甚至是纵向模式,这意味着我获得了iPhone尺寸。 从我所看到的就好像systemLayoutSizeFittingSize没有方向或设备的概念。 我试图伪造单元格的frame ,试着旋转单元格,调用layoutSubviews ,重新加载方向变化的tableView ,似乎没有任何影响。 我错过了一些基本的东西?

ios 8 UITableViewCell细节文本没有正确更新

编辑:tl;博士:我可以导致detailTextLabel的大小由iOS中的自动布局系统更改值? 编辑2:我有一个部分的解决scheme,但将继续寻找一个更好的。 见下文。 自从iOS 8以来,其他人在UITableViewCell中的detailText标签有问题吗? 我有一个文本和详细string的表。 最初细节文本是一个空string(@“”)。 在向编辑屏幕执行故事板顺序之后,我将返回一个新的细节文本值并更新它。 我尝试在viewWillAppear中重新加载表,以便在返回到前一个视图时立即显示该值。 一旦表格视图再次可见,表格单元格将文本字段向上移动,以便为详细文本腾出空间,但不显示详细文本。 直到我回到编辑屏幕,文本才会显示,然后再回来。 我所做的解决方法:它看起来像细节文本标签的自动布局没有正确更新,因为我认为它应该,并loggingdetailTextLabel框架的大小和化妆确认这一点。 我可以通过在viewDidAppear中运行[table reloadData]来强制更新文本,但是这会给我带来一个我不喜欢的闪烁效果,而且看起来不专业。 编辑:我已经做了其他的事情:我也已经强制detailTextLabel使用[cell.detailTextLabel sizeToFit]重新调整自己的大小。 这导致它显示,但在单元格中以奇怪的方式偏移。 在再次进入编辑页面后,detailTextLabel修复了它的位置。 我创build了一个简单的项目作为github回购,以显示我正在处理的是什么: https://github.com/acidaris/ios8_table_issue 我正在使用的视图控制器的主要代码也在下面。 – (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.table reloadData]; } – (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 1; } – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"]; cell.textLabel.text = @"This is a […]

调整UITableView头并包含UITextView(iOS7 + AutoLayout)

我现在一直在努力争取一段时间,我想确保我以正确的方式做到这一点。 作为参考,我使用故事板的AutoLayout,它是一个iOS7的应用程序。 我有一个带有标题视图的UITableView,HeaderView的用户界面连接在故事板上。 我已经在故事板中留下了标题,并且包含了一些元素,其中之一是不可滚动的UITextView。 以下是故事板中的基本画面截图: 我把标题视图的背景变成了深灰色,所以很突出。 UITextView的文本可以是dynamic的,所以它的高度需要根据文本的大小而改变。 但棘手的部分是,表格的标题视图也需要调整其高度,具体取决于文本的大小。 我已经尝试了几个不同的东西与约束,但它不是真的工作正常(除非我禁用AutoLayout和重新编程的事情,我真的想避免)。 当然,我希望尽可能使用尽可能less的代码来尽可能地干净。 我没有绑定使用表视图标题,虽然它适合我的需要,因为我想它和它的包含textview滚动下面的实际细节。 但是,所有人都说,如果有一个更简单的方法来完成这个(即用一个uilabel),我会很乐意改变底层结构。 任何想法的方法? 不要找人帮我解答; 如果可能的话,只是主要寻找一些好的起点。 提前致谢!

带有AutoLayout的UICollectionView Cell + UiLabel

我试图将UILabel固定到它的父级单元格。 我添加了四个约束(顶部,领先,尾随,底部) ,在iOS 8.0上运行正常,但在iOS 7.X上运行不正常 。 请看下面的图片: [点击此处查看全尺寸] 我究竟做错了什么? 请指教! 编辑#1 它似乎只是从Xcode 6通用以来就被打破了。 我的方法在Xcode 6 beta 7中工作正常。 此外,如果我减less内部视图的宽度,它会引发以下警告: 2014-09-10 19:58:28.109 Test[57827: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 […]