博客> 6.28主页界面完成一大半
6.28主页界面完成一大半
2017-10-17 10:07 评论:0 阅读:992 qq139391025
UICollectionView NSCalendar

昨天一天都有事断断续续看了点书,纠结了下整个的数据模型...weibo的API真是搞死人

今天开始对微博内容页面充实早上就增加了个时间标签,可以显示距离今天多久发的信息

用到了日历对象,还挺有用的,对于获取来的标准时间能直接比较距离当前有多久

    let dateF = NSDateFormatter()
    dateF.dateFormat = "EEE MMM dd HH:mm:ss Z yyyy"
    dateF.locale = NSLocale.init(localeIdentifier: "en_US")
    let date = dateF.dateFromString(created)
    //创建一个日历对象
    let calendar = NSCalendar.currentCalendar()
    //获取日历类型
    let type = NSCalendarUnit(arrayLiteral: NSCalendarUnit.Year,NSCalendarUnit.Month,NSCalendarUnit.Day,NSCalendarUnit.Hour,NSCalendarUnit.Second,NSCalendarUnit.Minute)
    //比较对象从指定date到当前date
    let cmp = calendar.components(type, fromDate: date!, toDate: NSDate(), options: NSCalendarOptions(rawValue: 0))

    print(cmp)
      //判断语句
     return 结果

}

增加配图picView,判断很简单,如果有图片model这个view就能看见,如果没有就看不见.

还是这个约束的问题,调试了好久才搞定了.

配图的显示就要开始用到UICollectionView了,这个控件还是我当兵回来后第一次使用,发现大致跟tableview差不多,做了个demo测试了下,大概了解了使用方法,就开始调试了,基本配图思路就是图片数量为1.2.3为显示为1行,4.5.6显示为两行,7.8.9显示为三行,其中1张图片偏大,4张图片为2x2排列,其余都以3为基础排列

代码看起来比较乱...算法比较死板...

func getPicCollectionCellSize() -> CGSize {
    layo = collectionViewLayout as? UICollectionViewFlowLayout
    layo?.minimumLineSpacing = 2
    layo?.minimumInteritemSpacing = 0  
    let count = picUrl!.count as Int
    let tmp:Int
    let tmp2:Int
    //图片数量123为1列
    //图片数量456为2列
    //图片数量789为3列
    if count % 3 == 0 {
        tmp = count/3
    }else{
        tmp = 1 + count/3
    }
    // contentview的宽约束,不超过3个cell
    if count > 3 {
        tmp2 = 3
    }else{
        tmp2 = count
    }
    let row:CGFloat = CGFloat.init(tmp)
    let num:CGFloat = CGFloat.init(tmp2)
    var size:CGSize?
    switch count {
    case 1:
        layo?.itemSize = CGSizeMake(currentWidth/2, currentWidth/2)
        size = CGSizeMake(currentWidth/2, currentWidth/2)
    case 4:
        layo?.itemSize = CGSizeMake((currentWidth-20)/3 - 1, (currentWidth-20)/3 - 1)
        size = CGSizeMake(((currentWidth-20)/3) * 2 + 1 , ((currentWidth-20)/3) * 2 + 1)
    default:
        layo?.itemSize = CGSizeMake((currentWidth-20)/3 - 1, (currentWidth-20)/3 - 1)
        size = CGSizeMake((currentWidth-20)/3 * num + 1, (currentWidth-20)/3 * row + 1)
    }
    return size!

}

虽然比较乱 但好歹测试过了.能正常显示了.最终效果就出来啦

 Enter your image description here:

现在又出现了个问题...点击图片放大的问题,,调试了一会还存在很多bug. 比如我直接在获取到window 在window上添加了imageView,但这个imageView后面的这些view的button什么 都可以点击....这可不好办啊.

明天要好好纠结下这个问题了...

收藏
0
sina weixin mail 回到顶部