Tag: 自动布局

什么是自动布局?

什么是自动布局 – 它是做什么的,它是一个iOS 5function? 由于新的iPhone 5有一个更大的屏幕,所有关于如何优化您的应用程序的选项归结为自动布局。 你能指点我一些关于自动布局的文章,以及如何使它适应我的项目?

UITableViewCell与AutoLayout性能不佳

我有点卡住了这个…任何帮助,非常感激。 我已经花了很多时间来debugging。 我已经得到了由NSFetchedResultsController提供的数据源的UITableView 。 在单独的视图控制器中,我使用[NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:]向CoreData插入新logging,保存托pipe对象上下文并closures该控制器。 非常标准的东西。 被pipe理的对象上下文的变化然后由NSFetchedResultsController接收: – (void)controllerWillChangeContent:(NSFetchedResultsController *)controller { [self.tableView beginUpdates]; } – (void)controllerDidChangeContent:(NSFetchedResultsController *)controller { [self.tableView endUpdates]; } – (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath { switch (type) { case NSFetchedResultsChangeInsert: [self.tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationNone]; break; case NSFetchedResultsChangeDelete: [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; break; case NSFetchedResultsChangeUpdate: [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; break; case NSFetchedResultsChangeMove: […]

如何以编程方式使用AutoLayout创build自定义UITableViewCell

我试图实现一个UITableView,其行为与Twitter客户端的时间轴类似。 现在我只是试图在UITableViewCell中获取两个标签。 正如这个堆栈溢出的答案所build议的,我为每个布局使用了不同的reuseIdentifier。 我的布局很简单,包括一个标签或两个标签。 最后,我将调整UITableViewCells的高度,但首先我需要获取与内容填充单元格。 如果我用initWithFrame:设置它们的框架,我可以得到如此显示的标签initWithFrame:但是约束没有被实现。 问题:什么是防止标签和约束出现? 我在我的UITableViewCell实现中显然缺less一些东西,但我不知道它是什么。 第二个问题:我正在为viewDidLoad每个reuseIdentifier正确注册UITableViewCell类? 这可能会遇到困难,但Interface Builder混淆了我,我想在代码中完成这一切。 以下是名为TVTCell.h的自定义UITableViewCell的代码: static NSString * const kCellIDTitle = @"CellWithTitle"; static NSString * const kCellIDTitleMain = @"CellWithTitleMain"; @interface TVTCell : UITableViewCell { NSString *reuseID; } @property (nonatomic, strong) UILabel *nameLabel; @property (nonatomic, strong) UILabel *mainLabel; @end 和TVTCell.m: – (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style […]

UIScrollView分页Autolayout&Storyboard

关于滚动视图有很多答案与自动布局和大量的滚动视图分页,但我找不到一个单一的东西,解决这两个问题。 我并不想做任何奇特的事情……只有7个全屏图像视图,我想用分页水平滚动,但为了简单起见(ha!),我决定尝试在故事板。 控制器被设置为自由forms,宽度为2240 (320*7) 。 然后,我将其设置为苹果公司为自动布局build议的方式。 UIScrollview /—–UIView /———-Content (7 image views) scrollview对所有边都有0/0/0/0约束,就像UIView里面一样。 “启用寻呼”functionclosures时,performance非常好 – 与预期一致。 但是一旦我开启了Paging,滑动使得视图变得疯狂,滚动整个2240宽度,然后弹回,最终落在正确的页面上。 我知道我已经试过了,只是把它全部搞定了,然后以编程的方式进行,但是我的固执性想要弄明白。 这一定是可能的!

自动布局(约束)在父视图中居中显示2个视图

我想弄清楚如何做到这一点与自动布局(iOS6)和约束。 基本上我把我的大视野分为两部分。 里面的部分(目前子视图)我有一个图像视图和标签。 我想以两边为中心,用可变长度的文本。 我的头大部分是围绕自动布局,但我不确定最好的办法。 我倾向于认为这是不可能在IB,但在代码。 继续尝试弄清楚这一点,但同时这是我正在试图创build的例子。

我想把表格视图精确到导航栏

请参见虚线框区域,这是导航栏和表格视图之间出现的额外空间。 我已经尝试了3件事情,但同样的问题。 1.清除所有约束和“添加缺less约束” 2.我使用了pin,并且在表格视图之上保持'0'距离UI对象 3.我已经使用了拖动方法,为表格视图设置垂直间距。

自动布局如何在一个视图中隐藏1个视图,3个等宽视图

目前我有1视图内的3个视图(这是固定在超视图的前沿和后沿)。 目前3个视图是这样的: 但是,在某些情况下,我希望隐藏靛蓝色的视图,但是仍然保留最后2个像这样的宽度: 我怎样才能实现这一点与自动布局? 或者我怎样才能达到这个使用IBOutlets约束?

如何强制“尊重语言方向”从RTL到LTR,反之亦然

我有一个使用自动布局的应用程序。 当用户select他或她的设备手机语言时,该应用可以完美地切换RTL和LTR语言。 所有的文本都是本地化的,语言方向正在工作。 我也有一个应用程序内的button,以改变它的语言,而无需重新启动应用程序。 这也很好,所有的文本正在被取代。 问题是,当用户从应用程序内更改语言时,我预先定义的约束条件中的“尊重语言方向”选项具有讽刺意味,不受尊重。 有任何想法吗?

多行UIButton和自动布局

我创build了一个看起来像这样的视图控制器: 我希望两个顶部的button始终有20个点在他们和整个视图的左/右边缘之间。 它们也应该始终具有相同的宽度。 我已经创造了所有这些限制,它的工作原理是我想要的。 问题是垂直约束。 button应始终在顶边下20个点。 他们应该有相同的高度。 但是,autolayout并不尊重左标签需要两行来适应所有文本,所以结果如下所示: 我希望它看起来像在第一张照片。 我不能将恒定的高度约束添加到button,因为当应用程序在iPad上运行时,只需要一条线,那么就有了额外的空间。 在viewDidLoad我试过这个: – (void)viewDidLoad { [super viewDidLoad]; self.leftButton.titleLabel.preferredMaxLayoutWidth = (self.view.frame.size.width – 20.0 * 3) / 2.0; self.rightButton.titleLabel.preferredMaxLayoutWidth = (self.view.frame.size.width – 20.0 * 3) / 2.0; } 但是这根本没有改变。 问题:如何使左侧button需要两行自动布局?

iOS – 自定义表格单元格不是UITableView的全部宽度

我可能会做这个错误。 所以我创build了一个UITableView,它基本上有一个自动布局的尾部空间设置为主视图。 我正在为这个表格创build一个自定义的单元格,所以我在原型单元格上进行药物定制,并为它创build了我的类。 这一切都工作得很好。 我似乎无法解决的是自定义单元格不是实际表格单元格的全部宽度,所以白色背景只是显示出来。 如果我不使用自定义单元格,则会使用整个宽度表单元格。 我设置单元格内容的约束,以便背景图像应该填充单元格。 我究竟做错了什么? 让我知道你需要什么来帮助解决这个问题。 ProfileCustomCell.h #import <UIKit/UIKit.h> @interface ProfileCustomCell : UITableViewCell { } @property (nonatomic, strong) IBOutlet UILabel *nameLabel; @property (nonatomic, strong) IBOutlet UIImageView *profileImageView; @end ProfileCustomCell.m #import "ProfileCustomCell.h" @implementation ProfileCustomCell – (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { self.nameLabel.text = nil; } return self; […]