基于UILabel的UICollectionViewCell AutoLayout动态高度

Xeravim

我在UICollectionViewCell中使用自动布局和大小类。因此,想法是使UI与Instagram相似。

问题是我无法完全理解如何添加适当的自动布局,因为似乎添加缺少的约束并不能神奇地完成这些任务。

在此处输入图片说明

当我添加约束时,即使没有警告,它也会始终在目标输出上显示“将尝试通过打破约束来进行恢复”。目标是使配置文件单元根据iphone类型动态变化,并根据bioLabel使动态高度变化。现在,我将其设置为静态,这是非常错误的,因为使用此方法时

systemLayoutSizeFittingSize:UILayoutFittingCompressedSize

它总是返回零,我猜是因为放错了自动布局约束。您能建议我如何根据其约束条件计算单元格的大小吗?我在github中创建了该项目,非常感谢任何帮助!

CollectionViewAutoLayout

特伊万什

我下载了您的代码并发现了问题。瞧,您可以简单地通过替换collectionView:layout:sizeForItemAtIndexPath方法中的这一行代码来解决您的问题。

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.section == 0) {
        CGFloat height = [self findHeightForText:@"Description about yourself, who you are and what impact did you do to the environment. did you do to the environment. Description about yourself, who you are and what impact did you do to the environment. did you do to the environment. who you are and what impact did you do to the environment. did you do to the environment. who you are and what impact did you do to the environment. did you do to the environment." havingMaximumWidth:[UIScreen mainScreen].bounds.size.width andFont:[UIFont systemFontOfSize:[UIFont systemFontSize]]];
        return CGSizeMake([UIScreen mainScreen].bounds.size.width, 150 + height);
    }
    else {
        return CGSizeMake((([UIScreen mainScreen].bounds.size.width - 2.0) / 3.0), (([UIScreen mainScreen].bounds.size.width - 4.0) / 3.0));
    }
}

添加此方法以动态计算高度。

 #pragma mark - Height Calculation Method
- (CGFloat)findHeightForText:(NSString *)text havingMaximumWidth:(CGFloat)widthValue andFont:(UIFont *)font {
    CGSize size = CGSizeZero;
    if (text) {
        //iOS 7
        CGRect frame = [text boundingRectWithSize:CGSizeMake(widthValue, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{ NSFontAttributeName:font } context:nil];
        size = CGSizeMake(frame.size.width, frame.size.height + 1);
    }
    return size.height;
}

更换一次并在所有设备上测试,让我知道...希望对您有所帮助:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

基于UILabel的UICollectionViewCell AutoLayout动态高度

来自分类Dev

AutoLayout动态.xib视图高度

来自分类Dev

使用autoLayout动态视图更改(即UILabel)

来自分类Dev

如何动态计算UILabel高度

来自分类Dev

基于视口高度的动态高度

来自分类Dev

如何基于其中的UILabel使UIView自动高度?

来自分类Dev

如何基于其中的UILabel使UIView自动高度?

来自分类Dev

在哪里确定动态大小的UICollectionViewCell的高度?

来自分类Dev

UICollectionViewCell中的动态高度noScrolable UICollectionView

来自分类Dev

使用 AutoLayout 使 UICollectionViewCell 的高度与其内容(所有子视图的总高度)匹配

来自分类Dev

动态增加UILabel和TableView Cell的高度?

来自分类Dev

根据内容动态更改UILabel的高度

来自分类Dev

具有多个UILabel动态高度的UIView

来自分类Dev

具有动态高度的UILabel进入UITableviewcell

来自分类Dev

根据内容动态更改UILabel的高度

来自分类Dev

基于父级的div动态最大高度

来自分类Dev

基于动态内容的webView高度限制

来自分类Dev

基于Webview动态设置TableCell高度

来自分类Dev

UICollectionViewCell具有2列网格和动态高度

来自分类Dev

UITAbleViewCell中的多个UILabel具有动态高度

来自分类Dev

具有自动布局的UIScrollView内部的动态UILabel高度

来自分类Dev

根据标签文本的大小创建具有动态高度的UILabel

来自分类Dev

带有动态高度的uiable上的两个uilabel

来自分类Dev

如何在Objective c中动态设置UILabel高度?

来自分类Dev

如何基于uitableview动态增加滚动视图的高度

来自分类Dev

动态高度和滚动基于堆栈面板中的可用空间

来自分类Dev

基于窗口大小的可滚动div上的动态最大高度

来自分类Dev

如何基于android设备动态设置视图高度?

来自分类Dev

动态高度和滚动基于堆栈面板中的可用空间

Related 相关文章

  1. 1

    基于UILabel的UICollectionViewCell AutoLayout动态高度

  2. 2

    AutoLayout动态.xib视图高度

  3. 3

    使用autoLayout动态视图更改(即UILabel)

  4. 4

    如何动态计算UILabel高度

  5. 5

    基于视口高度的动态高度

  6. 6

    如何基于其中的UILabel使UIView自动高度?

  7. 7

    如何基于其中的UILabel使UIView自动高度?

  8. 8

    在哪里确定动态大小的UICollectionViewCell的高度?

  9. 9

    UICollectionViewCell中的动态高度noScrolable UICollectionView

  10. 10

    使用 AutoLayout 使 UICollectionViewCell 的高度与其内容(所有子视图的总高度)匹配

  11. 11

    动态增加UILabel和TableView Cell的高度?

  12. 12

    根据内容动态更改UILabel的高度

  13. 13

    具有多个UILabel动态高度的UIView

  14. 14

    具有动态高度的UILabel进入UITableviewcell

  15. 15

    根据内容动态更改UILabel的高度

  16. 16

    基于父级的div动态最大高度

  17. 17

    基于动态内容的webView高度限制

  18. 18

    基于Webview动态设置TableCell高度

  19. 19

    UICollectionViewCell具有2列网格和动态高度

  20. 20

    UITAbleViewCell中的多个UILabel具有动态高度

  21. 21

    具有自动布局的UIScrollView内部的动态UILabel高度

  22. 22

    根据标签文本的大小创建具有动态高度的UILabel

  23. 23

    带有动态高度的uiable上的两个uilabel

  24. 24

    如何在Objective c中动态设置UILabel高度?

  25. 25

    如何基于uitableview动态增加滚动视图的高度

  26. 26

    动态高度和滚动基于堆栈面板中的可用空间

  27. 27

    基于窗口大小的可滚动div上的动态最大高度

  28. 28

    如何基于android设备动态设置视图高度?

  29. 29

    动态高度和滚动基于堆栈面板中的可用空间

热门标签

归档