Tag: autolayout

UIStackView里面的UITextview

我在UIStackView中添加了我的UITextView。 但是我的textview不是Multiline。 自动布局如下所示: 按照图像它只是采取1行。 textview框架显示为按照图像的框架。 的UITextView UIStackView

UICollectionViewCell systemLayoutSizeFittingSize返回不正确的宽度

我一直在玩dynamicUICollectionViewCell的,并已注意到在iOS 8上调用cell.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize)上的UICollectionViewCell cell.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize)返回不正确的宽度。 目前解决这个问题的唯一解决方法是显式地添加宽度约束来强制单元格的宽度。 下面的代码用在Cell子类中: func calculatePreferredHeightForFrame(frame: CGRect) -> CGFloat { var newFrame = frame self.frame = newFrame let widthConstraint = NSLayoutConstraint(item: contentView, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: CGRectGetWidth(frame)) contentView.addConstraint(widthConstraint) self.setNeedsUpdateConstraints() self.updateConstraintsIfNeeded() self.setNeedsLayout() self.layoutIfNeeded() let desiredHeight: CGFloat = self.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height newFrame.size.height = CGFloat(ceilf(Float(desiredHeight))) contentView.removeConstraint(widthConstraint) return CGRectGetHeight(newFrame) } 我知道,与iOS 8和dynamicUICollectionViewFlowLayout UICollectionViewCell的contentView处理约束不同,但是有什么我在这里失踪? […]

在UITableViewCell的子视图上设置遮罩层将覆盖自动布局约束

我有一个具有多个子视图的UITableViewCell 。 其中一个子视图是UILabel ,根据UILabel本的大小dynamic调整单元格的高度。 这完美的作品。 我有另一个子视图,也有约束的单元格。 这个子视图总是应该和单元具有完全相同的高度。 这个效果也很好。 但是,当我尝试在子视图上设置遮罩层时遇到了问题。 蒙版图层正常工作,但是子视图的高度是错误的,与单元格的高度不一样。 这是我的面具层代码: UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.mySubview.bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft | UIRectCornerBottomRight) cornerRadii:CGSizeMake(10, 10)]; CAShapeLayer *maskLayer = [CAShapeLayer layer]; maskLayer.frame = self.mySubview.bounds; maskLayer.path = maskPath.CGPath; self.mySubview.layer.mask = maskLayer; 我一直在做研究,并试图find一种方法来解决这个问题,所以我可以设置遮罩层,并让子视图有正确的高度,但我一直无法得到它的工作。 我现在已经看过这个解决scheme多次推荐了: [self setNeedLayout]; [self layoutIfNeeded]; // Customize cell after here 但是这对我也不适用。 有没有办法让我知道什么时候自动布局约束已经被应用,以便我可以在之后应用遮罩层? 遮罩层代码非常简单,它使用子视图的边界,并且边界是closures的,因为它使用了约束已经应用之前存在的边界,并且子视图具有正确的高度。 至less我觉得我是正确的理解。

通过自动布局在UIScrollView中使用顶层布局指南

我想通过自动布局使用UIScrollView的Top Layout Guide 。 如果没有UIScrollView自动布局可以很好地与Top Layout Guide 。 但是,当我在UIScrollViewembeddedUIButton ,它不。 我知道这是因为UIScrollView与Top Layout Guide 。 但我认为可能有一个很好的解决scheme来解决这个问题。

使用自动布局禁用UIScrollView中的水平滚动

我想创build只有垂直滚动的视图。 事实certificate,这是史诗难以做的IO。 我已经完成了这个步骤: 1)在故事板中创buildUIViewController; 2)在UIViewController的View里面添加ScrollView,并向每一边添加0个约束。 3)在滚动视图中添加元素,结果如下: 我启动我的应用程序后,所有的作品,但: 1)我应该如何禁用水平滚动? 我添加0约束右侧我的scrollView + 0约束右侧我的uilabel(因为你看在屏幕上,因为它没有附加在右边,它有不同的约束,但在属性我设置约束= 0)和我想的标签文本应该是在我的屏幕边界,但是当我启动应用程序,我可以滚动到右侧,即uilable文本没有包装,我的scrollview只是resize,以适应text.I试图设置我的scrollView在代码中: scrollView.contentSize = CGSize(UIScreen.mainScreen().bounds.width, height: 800) ,但没有帮助。 2)如果我滚动到很多,然后出现空白,这不是很酷,如何解决?

在自动布局的情况下,IOS滚动查看模糊的可滚动内容高度

您好我正在开发小型IOS应用程序,我正在使用scrollview自动layout.Inside滚动我添加两个更多的意见。 我正在使用IB和自动布局约束。 我以垂直的方式一个接一个地增加两个观点。 我添加了外部约束,如尾随,领先,顶部,底部空间。 我还为这两个视图添加了高度限制。 直到这一切工作正常。 但是我的观点1有一些dynamic的内容。 出于这个原因,我想使高度约束大于等于而不是等于。 那么如何解决这个问题呢。 需要一些帮助。 谢谢。

使用自动布局约束dynamic调整表格视图单元格大小

更新 我最新的发现后,我已经完全修改了这个问题。 目标 我的目标是实现以下效果: 有一个简单的表格视图 用户select一行 选定的行将展开,显示另一个标签下方的原始标签 请注意,我知道,这可以通过插入/删除单元格下面的单元格, 我已经有一个成功的实现使用该方法 。 这一次,我想尝试使用自动布局约束来实现这一点。 当前状态 我有一个示例项目供任何人检查 ,并且还打开了一个问题 。 总结一下,以下是我迄今为止所尝试的: 我在这里有以下观点作为演员: 单元格的内容视图 包含主标签(“主视图”)的顶视图 底视图,在主视图下方,包含最初隐藏的标签(“详细视图”) 我已经在我的单元格中设置了自动布局约束(请注意,这完全是伪语言): mainView.top = contentView.top mainView.leading = contentView.leading mainView.trailing = contentView.trailing mainView.bottom = detailView.top detailView.leading = contentView.leading detailView.trailing = contentView.trailing detailView.bottom = contentView.bottom detailView.height = 0 我有一个自定义的UITableViewCell子类,有多个sockets,但是这里最重要的是前面提到的高度约束的一个sockets:这里的想法是默认将其constant设置为0,但是当选中该单元时,将其设置为44 ,所以它变得可见: override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, […]

使用UIStackViewdynamicUITableView行高度?

惊讶这不是开箱即用,因为这似乎是堆栈视图的重要用例。 我有一个UITableViewCell子类添加一个UIStackView到contentView。 我将标签添加到tableView(_cellForRowAtIndexPath:)的堆栈视图中,tableview被设置为使用dynamic行高,但至less在Xcode 7.3中看起来不起作用。 我还有一个印象,就是在堆栈视图中隐藏排列的子视图是可以animation的,但是这似乎也被打破了。 任何想法如何让这个工作正常? class StackCell : UITableViewCell { enum VisualFormat: String { case HorizontalStackViewFormat = "H:|[stackView]|" case VerticalStackViewFormat = "V:|[stackView(>=44)]|" } var hasSetupConstraints = false lazy var stackView : UIStackView! = { let stack = UIStackView() stack.axis = .Vertical stack.distribution = .FillProportionally stack.alignment = .Fill stack.spacing = 3.0 stack.translatesAutoresizingMaskIntoConstraints = false return […]

在视图控制器的宽度上水平均匀分布UIButton的最简单的方法是什么?

我已经看了很多答案,他们都似乎很复杂! 最近我在看这个答案,但我不想把我的button放在视图内。 我有6个UIButtons都是相同的尺寸。 我想要将它们在整个宽度和我的根视图控制器的底部水平均匀地分开。 | | | | | [b1] [b2] [b3] [b4] [b5] [b6] | ________________________________________ 什么是以编程方式实现这个最简单的方法?

使用“自动布局”垂直和水平居中自定义UIView

我正在尝试使用自动布局API新build可用的iOS 6来构build一个相当简单的animation自定义用户界面。我正在构build的自定义视图有一个圆形,我想要以垂直和水平为中心。 不幸的是,我不明白为什么我的约束似乎对UIButton和UILabel元素工作正常,但当我使用自定义视图和自定义CALayer(在这种情况下是一个圆圈,最终将animation),会产生奇怪的结果。 为了清楚起见,我不希望我的视图扩大到填满整个屏幕,而是要有dynamic的“填充”,使视图垂直居中在iPhone 4和5上。我还应该注意到,我很新cocoa和UIKit。 RootViewController.m: … – (void)viewDidLoad { [super viewDidLoad]; // Create Circle View CGRect circle_view_rect = CGRectMake(0, 0, 100, 100); UIView *circle_view = [[UIView alloc] initWithFrame:circle_view_rect]; // Create Circle Layer CircleLayer *circle_layer = [[CircleLayer alloc] init]; circle_layer.needsDisplayOnBoundsChange = YES; circle_layer.frame = circle_view.bounds; [circle_view.layer addSublayer:circle_layer]; // Enable Auto Layout [circle_view setTranslatesAutoresizingMaskIntoConstraints:NO]; [self.view addSubview:circle_view]; […]