Tag: autolayout

embedded到容器视图中的tableView顶部的空白区域

我有一个viewController ,它有2个容器视图,它拥有2个不同的tableViews 。 我使用主视图顶部的segmentControl在这两个tableView之间切换。 它工作得很好。 在其中一个tableViews我想深入显示另一个tableView。 问题是,当我这样做的时候,在视图顶部留下了一个空白的空白区域(至less我认为这是造成空白区域的原因)。 如何确保tableView在导航栏下舒适地坐着? 这里有一些图片供参考: 1.主视图是否包含段控制。 2.容器视图。 select一个段会产生一个如下所示的视图。 这很好。 但是,当我深入了解,我得到这个: 我可以向上滚动,没问题,并手动将图像放置在导航栏下方,所以这告诉我不是视图不够大。 如何删除图像上方的空白区域? 提前致谢。

AutoLayout – 保持图像水平约束的比例(Swift Xcode 6)

我一直在试图实现图片的时间轴(如Instagram或Facebook)。 但是,我一直在努力与图像的比例。 这是我的xib包含我的单元格: 我希望图片保持其比例,并完全填充单元格的宽度。 我已经在UIImageView上设置了4个自动布局约束,水平约束为0-0,顶部/底部约束为5-5。 我也将ViewMode设置为“Aspect Fit”。 我试过不同的设置: 将UIImageView的高度设置为特定值: – >修改图像的宽度以保持图像比例 不要设置UIImageView的高度 – >它认为高度等于0,因此甚至不显示图像 设置高度大于或等于特定值: – >与1相同的行为(图像宽度被修改以保持图像比例) 我从URL加载图像,所以我一直在使用lib Haneke( https://github.com/Haneke/HanekeSwift )与以下函数:imageView.hnk_setImageFromURL(url)。 它有一个图像自动resize,我不知道如何获得图像的原始宽度/高度手动设置高度。 再次,我想要的是图片保持其比例,并完全填满单元格的宽度。 任何人有一个build议? 非常感谢 !

自动布局iOS 11工具栏与customView的UIBarButtonItem

最近在我们的项目中,使用customView的UIBarButtonItem存在问题。 在iOS 11之前,我们通过灵活的间距项目进行了布局。 这不起作用,所以什么也没有显示。 因为我在这里没有find答案,真正解决了我的问题,所以我研究了一下,并提出了一个我想与大家分享的(一种可靠的解决scheme)解决scheme。 也许它可以帮助你,或者你有一些反馈。 这是混合objc和swift代码,希望你不介意。

iOS滚动视图,容器视图 – 自动布局问题

我正在使用故事板和自动布局。 我在UIScrollView有一个容器视图。 容器视图允许我在故事板中布置一个长(320,1000)视图。 我把UIScrollView的内容大小设置为(320,1000)。 我把容器上的以下约束固定在ScrollView上: 宽度等于:320 身高相等:1,000 顶层空间:Superview 将中心Xalignment到:Superview Xcode坚持要添加一个额外的约束。 它增加了底部空间:Superview等于:-432 。 它不会让我删除这个约束! 我不确定这是否会影响下面的问题。 一切工作正常我的iPhone 5和模拟器的4“屏幕上。 我的问题来了,当我在模拟器和我的iPhone4S的3.5“屏幕上testing它时,滚动内容大小限制为(320,568),丢失了我的ContainerView的底部。 有人可以帮助我理解为什么这不起作用的3.5“屏幕?

将约束添加到xib中的“主视图”

我有一个.xib文件中定义的UIView 。 我需要设置translatesAutoresizingMaskIntoConstraints = NO 。 这意味着框架不会被转换为约束,所以我需要自己设置大小约束。 我为UIView创build了一个工作类别的方法: -(NSArray*)setSizeConstraints:(CGSize)size { NSLayoutConstraint* height = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeHeight relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:size.height]; NSLayoutConstraint* width = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeWidth relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:size.width]; [self addConstraint:height]; [self addConstraint:width]; return [NSArray arrayWithObjects:height, width, nil]; } 但是我想从Xcode接口生成器中设置这些约束,但是我所有的AutoLayout控件都是灰色的: 有没有办法在界面生成器中做到这一点?

当我将UIPanGestureRecognizer和自动布局结合在一起时,我的UIViews变得糟糕透顶

我想要一个球跟踪我的手指,当我沿着一个圆形轨迹拖动iPhone或iPad上的每个允许的设备方向时。 当一个设备被旋转时,视图看起来是正确的居中,但是球不会停留在圆周上,当我拖动它的时候它似乎会去任何地方。 编辑 马丁R的答案现在显示这个要求。 我唯一的附加代码更改是删除不必要的声明var shapeLayer = CAShapeLayer() 这个例子中的math是非常有意义的,直到我试图将球和轨迹同时约束到视图的中心,并在运行时将球的中心坐标加上偏移量。 我遵循这些关于如何约束视图的build议 。 有三件事我不明白。 首先,根据两个variablestrackRadius和angular度theta计算圆的圆周,并使用theta sin和cos来找出x和y坐标,这样就不会使球处于正确的位置。 其次,使用atan来查看视图中心与触摸点之间的angular度theta ,使用trackRadius和theta来查找x和y坐标不会将球放置或移动到沿着圆周的新位置。 第三,每当我拖动球,在debugging区域的消息说, Xcode is Unable to simultaneously satisfy constraints ,虽然没有约束问题报告拖动之前。 这里可能有一个以上的问题。 我的大脑开始受到伤害,如果有人能指出我做错了什么,我会很感激。 这是我的代码。 import UIKit class ViewController: UIViewController { override var supportedInterfaceOrientations: UIInterfaceOrientationMask { return .all } var shapeLayer = CAShapeLayer() let track = ShapeView() var ball = ShapeView() var […]

animationUIStackView排列的子视图内容大小更改

内部内容大小变化时,是否可以对已排列的子视图进行animation制作? 例如,想象一下,我有一个排列的子视图,其中包含固定到边缘的单个UILabel。 这个标签有less量的文字。 新的文本进来,这是比以前的文字大。 标签的内在尺寸现在更大。 我想能够像这样animation: stackView.layoutIfNeeded() self.label.text = self.expanded ? textTwo : textOne UIView.animateWithDuration(0.3) { () -> Void in self.stackView.layoutIfNeeded() } 堆栈视图当前从旧内容大小“跳转”到新的大小,忽略animation块。 当然,另一种方法是手动找出排列的子视图的高度,并为该约束设置animation。 如果可能,我想避免这种情况。

使用自动布局缩放UIImageView的UIScrollView

考虑一个具有单个子视图的UIScrollView 。 子视图是具有以下大小约束的UIImageView : 它的高度必须等于UIScrollView的高度。 它的宽度必须是图像的宽度,与UIImageView的高度成比例。 预计UIImageView的宽度将比UIScrollView的宽度大,因此需要滚动。 该图像可能会在viewDidLoad (如果caching)或asynchronous时设置。 你如何使用自动布局实现上述function,尽可能多地使用Interface Builder? 到目前为止我所做的 基于这个答案,我configuration我的笔尖是这样的: UIScrollView固定在其超视图的边缘。 UIImageView固定在UIScrollView的边缘。 UIImageView具有占位符的固有大小(以避免可滚动内容大小歧义错误) 正如所料,结果是UIImageView的大小为UIImage的大小,并且UIScrollView水平和垂直滚动(因为图像大于UIScrollView )。 然后我尝试了各种不起作用的东西: 在手动加载图像后设置UIImageView的框架。 在UIImageView的宽度上添加一个约束,并在载入图像后修改它的值。 这使图像更大(?!)。 图像加载后设置zoomScale 。 没有明显的效果。 没有自动布局 以下代码完全按照我的要求,尽pipe没有自动布局或界面生成器。 – (void)viewDidLoad { { UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; [self.view addSubview:scrollView]; self.scrollView = scrollView; } { UIImageView *imageView = […]

iOS 8 AutoLayout滚动视图在iPhone 6 plus上水平滚动

我有一个适用于iOS的应用程序,同时适应所有的用户界面自动布局的大小class级,以支持新的iPhone 6和iPhone 6加上我面临一个奇怪的问题…我的滚动查看工作正常在iPhone 4s,5,5s和6 …在iPhone 6加上他们不是只滚动垂直,而是水平…就像如果滚动视图的内容大小比视图本身更宽的几个像素(所以它水平移动几个像素然后它弹跳)。 我不明白为什么会发生这种情况

如何使一个collectionViewCell自动resize只有身高?

我使用了collectionView的stream式布局自动化function self.flow = [[UICollectionViewFlowLayout alloc] init]; self.flow.scrollDirection = UICollectionViewScrollDirectionVertical; self.flow.sectionInset = UIEdgeInsetsZero; self.flow.estimatedItemSize = CGSizeMake(320, 48); 我想要单元格将宽度的CollectionView(widthCell = widthCollectionView) 但我得到了整个大小的自动化工作。 我尝试玩内容压缩/拥抱优先 – 不起作用。 对于CollectionView的宽度等于320px,我得到了标签内容大小的单元格大小。 我的单元格看起来像 限制水平:H:| -8- [img(48)] – 8- [标签] -8- | 如何使autosize工作只​​为垂直而不是水平?