Tag: 自动布局

使用AutoLayout(Storyboard)自动调整UIView的高度到它的子视图

我正在使用StoryBoards和Autolayout。 下面是等级: – Superview — UIView (ContentView) — UITextField — UITextField — UITextField — UITextField UIView(ContentView)的限制为SuperView的Left,Top,Right,偏移量为20; UIView(ContentView)的底部不受任何限制。 我想根据其中的多less个textField来调整contentView的高度。 任何想法如何使用AutoLayout实现这一点? 我在Autolayout非常新。 用于在代码中执行所有UI。 有什么想法吗? 谢谢!!

iOS – 更新自动布局约束常量在推送另一个视图控制器然后返回后停止工作

我有一个UIViewControllerdevise在IB(Storyboard)有一个UIView包含几个控件。 UIView有一个自动布局约束来修复它的高度。 在我的UIViewController子类中,我有一个IBOutlet NSLayoutConstraint (ivar)连接到高度约束,以便我可以在代码中进行调整。 根据用户事件,我通过修改约束的80和44之间的constant属性来展开/缩小UIView的高度,这也是向上/向下滑动UITableView,它被限制在UIView的底部。 我以前使用过这种技术,一切正常。 我现在在UITabBar的父容器UIViewController中使用UIViewController的4个实例。 当UITabBar选项卡select更改时,我使用insertSubView在适当的实例中insertSubView 。 问题是UIView无法展开/收缩在第一个子视图控制器选项卡页。 在其他3个标签页实例中,它工作正常。 同样在3个标签页中它的工作原理,如果我推入另一个视图控制器到堆栈,然后返回,调整UIView不再工作。 在展开/缩小失败的情况下,我已经使用NSLog来监视约束的constant属性的值,并且在每个实例中都被改变,但UIView的高度不受影响。 就好像约束不再设置为在UIView上工作? 我使用的Xcode 5.1和我的应用程序是iOS7的目标。

如何使用自动布局在代码中使用多行标签创build和添加UIButton?

有很多链接如何调整标签的大小,但是缺less如何根据标签大小调整UIButton大小的信息。 目前,我有自动布局设置屏幕视图(所有的系统约束是从IB添加),一切工作正常,但需要在屏幕底部添加dynamic内容。 我需要创build并随机添加随机数字的随机长度的标题。 所以,这里是创build和添加button的代码片段: // Loop UIButton *myButton = [UIButton new]; UIButton.frame = CGRectMake(0, previousButtonOriginY, self.view.bounds.size.width, 20); myButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; myButton.titleLabel.textAlignment = NSTextAlignmentLeft; myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; [myButton setTitle:@"very long title…" forState:UIControlStateNormal]; myButton.titleLabel.numberOfLines = 0; [self.footerView addSubview:myButton]; 问题是button的框架高度保持20px,但标签string显示在三行上,因此与另一个button标题重叠。 如果我添加[myButton sizeToFit],那么button的宽度就会resize以适合所有的文本到一行,所以标题超出了屏幕。 如果我添加[myButton sizeThatFits:CGSizeMake(320,100)],那么resize根本不起作用。 我知道sizeToFit不应该被称为所有,因为它不是自动布局的一部分,但是需要build议,如何轻松地使button适合其标签屏幕320宽度。 我觉得我需要从代码中添加系统约束,但之前没有这样做,所以不知道它应该如何。 我可能需要从代码中添加大量的约束才能使这个简单的事情工作:)

iOS布局animation在GMSMapView拖动时忽略持续时间

你可以看到比较两个GIF下面的问题。 “缩小”和“拉伸”animation都基于约束操作, [self layoutIfNedeed]放置在-animateWithDuration块内。 正如你所看到的,当地图没有移动时,它就像预期的那样工作。 但是,当您开始拖动地图时,“缩小”animation会立即发生。 如果仔细观察,您可能会注意到cornerRadiusanimation仍然有效。 这告诉我,它可能与地图(scrollView里面?不知道如何谷歌地图工作)调用它自己的布局块,干扰我的animation。 或者这可能是由于cornerRadiusanimation是使用CABasicAnimation而不是UIViewanimation完成的。 animationInfoView不是mapView的子视图。 不知道当mapView调用内部布局方法时它是否会影响我的infoView的布局。 我试过所有的选项结合UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionOverrideInheritedDuration | UIViewAnimationOptionOverrideInheritedOptions UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionOverrideInheritedDuration | UIViewAnimationOptionOverrideInheritedOptions UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionOverrideInheritedDuration | UIViewAnimationOptionOverrideInheritedOptions只是为了看看是否有帮助。 它不是。 我想我可以直接克服这个操纵框架,而不是操纵约束,它会看起来一样的用户,但我觉得使用约束是如此的优雅。 我尽量避免操纵框架,并使用自动布局。 任何想法是什么导致这一点,以及如何使用自动布局animation克服这个问题? UPDATE 我试图直接animation框架 – 结果是一样的。 所以它与自动布局无关。 看起来像当前视图animation由于某种原因停止。 如果我用CABasicAnimationreplace我的UIViewanimation块,它就像一个魅力。 我被要求发布一些animation代码: – (void)shrink { if (!self.isStretched) return; self.stretched = NO; [self hideImageAndLabels]; [self.indicatorView startAnimating]; CABasicAnimation *animation = [CABasicAnimation […]

CustomCell在UItableView崩溃

我一直在使用customCell.xib自己的customCellClass在一个UITableView ,而不使用autoLayoutfunction(因为我需要让它在iOS6之前的平台上工作)。 UITableView在dataSource方法中获取这个自定义的xib单元格。 我面临的困境是, UITableView突然崩溃50次我运行它,但执行和显示tabeview完美的其余时间.. 我现在正在使用XCode 4.5。 这是我收到的崩溃日志.. 执行-layoutSubviews后仍然需要自动布局。 UITableViewCell的-layoutSubviews实现需要调用super。

自动布局领先或培训-16

如果我只是拖一个视图占据所有可用的屏幕,当我试图设置自动布局的前导和尾随空间,它总是说-16,我想不应该是0左/右边缘? 如果我设置为0,实际上视图将水平缩小16左侧和16右侧。 我有点困惑,为什么有16个区别?

如何将UILabel的基线与UIImageView的底部alignment?

我正在尝试将UILabel的基线与UIImageView的底部alignment。 我发现我无法select标签的基线作为标签的属性。 但是,我也发现如果用另一个标签replace图像视图,我可以使用基线。 有没有办法将标签的基线与图像底部alignment?

animation和自动布局

我有一系列的视图堆叠这种方式 ________________ | | | View 1 | |________________| | | | View 2 | |________________| | | | View 3 | |________________| 这些视图可以展开和折叠,因此如果展开视图1,则视图2的顶部位于视图1的底部,而与视图2相关的视图3也相同。 ________________ | | | View 1 | | | | | | | |________________| | | | View 2 | |________________| | | | View 3 | |________________| ________________ | | […]

UIButton在UIScrollView中不工作/可点击

我正在使用UIScrollView自动布局。 主UIView高度= 1300 ContentView(在UIScrollBar ) UIView = 1100 ConetntView在底部包含一个button。 这是完全可见的,但是当我点击它,它不起作用。 约束条件是: 1) ScrollView领先,尾随,顶部和底部与主UIView 2)用UIScrollView ContantView前导,尾随,顶部和底部 3) ContentView和主UIView之间的高度限制相等 请帮忙。

UILabel sizeToFit只适用于AutoLayoutclosures

所以我正在制作一个使用iOS 6的应用程序,并想知道为什么我以前在iOS 5上运行良好的代码不再工作。 我有一个带有dynamicUILabel的单元,它根据它携带的文本进行调整。 这是与自动布局打开: 这是与自动布局closures: 这是我的代码: – (CGFloat)heightForText:(NSString *)bodyText { #define FONT_SIZE 13.0f #define CELL_CONTENT_WIDTH 280.0f #define CELL_CONTENT_MARGIN 5.0f CGSize constraintSize = CGSizeMake(CELL_CONTENT_WIDTH – (CELL_CONTENT_MARGIN * 2), 20000.0f); CGSize labelSize = [bodyText sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping]; CGFloat height = MAX(labelSize.height, 36.0f); // NSLog(@"height=%f", height); return height + (CELL_CONTENT_MARGIN * 2); } – (CGFloat)tableView:(UITableView *)tv […]