具有单个 uiviewcontroller 和多个视图的自动布局 iOS

Posted

技术标签:

【中文标题】具有单个 uiviewcontroller 和多个视图的自动布局 iOS【英文标题】:Autolayout iOS with single uiviewcontroller and multiple view 【发布时间】:2017-07-03 02:27:59 【问题描述】:

我正在开发一个应用程序,它使用几个 UIViewcontrollers 和多个 UIViews。我正在尝试设置自动布局,但 UIViews 没有缩放到 UIViewcontroller 大小。有人可以指出一种无需重新设计应用程序架构即可解决此问题的方法吗?


所以我有一个 UIViewController 和一个子视图 UIView (addNoteUIView)

当我将子视图添加到 viewController 时 subview Addnote View 没有通过自动布局调整到屏幕的边界并且它被裁剪。

the subview does not resize to the bounds of the device

如何修复第二个 UIView(添加注释视图)以遵循设备的边界?

编辑

感谢维沙尔

我在 viewdidload 上设置框架

[self.collectionView setFrame:self.view.frame];
[self.collectionView setNeedsLayout];

但是,我从细胞中得到了这种行为。为什么会这样?多重界限? see image with collection view cell error

我的集合项目大小代码

- (CGSize)collectionView:(UICollectionView *)collectionView
                  layout:(UICollectionViewLayout*)collectionViewLayout
  sizeForItemAtIndexPath:(NSIndexPath *)indexPath

    CGRect screenRect = [_collectionView bounds];
    CGFloat screenWidth = screenRect.size.width;
    CGFloat screenHeight = screenRect.size.height;

    CGFloat cellWidth = (screenWidth / (_lcolumns)); //Replace the divisor with the column count requirement. Make sure to have it in float.
    CGFloat cellHeight = (screenHeight / (_lrows));

    if(cellWidth < cellHeight)
        return  CGSizeMake(cellWidth, cellWidth);
    else
        return  CGSizeMake(cellHeight, cellHeight);


【问题讨论】:

不清楚您想要实现什么。向我们展示一些工作代码或布局。 向我们展示您的问题的屏幕截图。很难理解整体的问题是什么 我更新了上面的问题 - 希望让它更清楚一点? 【参考方案1】:

它不是使用自动布局调整大小,您需要设置框架或者您需要以编程方式提供约束。

【讨论】:

以上是关于具有单个 uiviewcontroller 和多个视图的自动布局 iOS的主要内容,如果未能解决你的问题,请参考以下文章

单个 UIViewController 上的 2 个 UICollectionViews,具有不同数量的部分

是否可以跨多个 UIViewController 使用单个 UIView?

单个 UIViewcontroller,如何在多个 xib 之间切换?

单个 UIViewController 中的多个集合视图未调用 cellForItemAtIndexPath indexPath

iOS 程序在单个 UIViewController 中使用多个 UITableView

具有多个视图的 UIViewcontroller