V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
Ison
V2EX  ›  iDev

请问大家 UICollectionView 添加 NSLayoutConstraint 是怎么设置自适应高度的呢

  •  
  •   Ison ·
    i-Leung · 2015-08-07 21:32:29 +08:00 · 3730 次点击
    这是一个创建于 3185 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我有三个控件竖直方向放 就是类型微信发朋友圈的界面
    上下放的是UITextView
    中间放的是UICollectionView
    都没有设置高度
    采用NSLayoutConstraint自动适应内容
    UITextView都没有问题
    就是UICollectionView能够适应宽度不能适应高度
    设置UICollectionViewFlowLayout的collectionViewContentSize也没用
    它最后还是根据NSLayoutConstraint做调节 也还是高度为0
    但是在NSLayoutConstraint强制设置高度又可以 就是无法自适应内容高度
    请问应该怎么处理呢

    或者大家是怎么处理类似需求的呢
    就是发朋友圈先写评论 再有一个上传图片的9宫格列表 再到一个填地址信息的
    如何处理中间的9宫格内容自适应高度呢
    纠结几天了
    查到的要不是UICollectionViewCell的NSLayoutConstraint就是改UICollectionViewFlowLayout的
    都试过了都不行
    快崩溃了...
    9 条回复    2016-08-24 17:09:51 +08:00
    ruandao
        1
    ruandao  
       2015-08-07 21:45:35 +08:00
    rac 检测 contentsize
    然后用 intrinsicContentSize 返回你想要的高度
    Ison
        2
    Ison  
    OP
       2015-08-07 22:02:22 +08:00
    @ruandao 噢。。。原来有rac这个东西 刚学ios不知道呀
    那是不是单靠NSLayoutConstraint无法直接对UICollectionView的内容进行自适应
    一定得通过设置高度才能解决UICollectionView的自适应问题呢
    teriyaki
        3
    teriyaki  
       2015-08-07 22:09:12 +08:00
    别用uicollectview这个是ios最复杂的ui控件
    除了瀑布流 uitableview都能实现
    Ison
        4
    Ison  
    OP
       2015-08-07 22:20:38 +08:00
    @teriyaki 俺看它实现九宫格那么简单就用它了。。。
    ruandao
        5
    ruandao  
       2015-08-07 23:02:50 +08:00
    ruandao
        6
    ruandao  
       2015-08-07 23:05:36 +08:00
    抱歉,好像说错了,恩,你直接弄个长宽比为1的constraint 就行了

    那样就是正方形了,然后设置item的宽高为(width-2)/3
    Ison
        7
    Ison  
    OP
       2015-08-07 23:11:54 +08:00
    @ruandao 好的 我试一下 thx
    loveuqian
        8
    loveuqian  
       2015-08-08 00:51:36 +08:00 via iPhone
    @teriyaki 貌似table也能瀑布?暂时我还没学到collection
    linvx
        9
    linvx  
       2016-08-24 17:09:51 +08:00
    https://github.com/lingtingSir/LTTemplateLayoutItem UICollectionView 高度宽度自适应缓存框架,看是否满足需求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   932 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:03 · PVG 06:03 · LAX 15:03 · JFK 18:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.