youngsoft / TangramKit

TangramKit is a powerful iOS UI framework implemented by Swift. It integrates the functions with Android layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,LayoutSizeClass to build your App 自动布局 UIView UITableView UICollectionView
MIT License
1.21k stars 175 forks source link

tg_setSubviews失效 #35

Closed hanjunqiang closed 5 years ago

hanjunqiang commented 5 years ago
  请教个问题,把下面的代码运行一下,会发现vertLayout.tg_setSubviews(size:60, minSpace:10, maxSpace:CGFloat.greatestFiniteMagnitude)无效,

但是把下面的代码放入官方提供的Demo中,就有效! 我想知道是哪里的原因?

    let vertLayout = TGFlowLayout(.vert, arrangedCount: 4)
    //这个垂直流式布局中,每个子视图之间的水平间距是浮动的,并且子视图的宽度是固定为60。间距最小为10,最大不限制。
    vertLayout.tg_setSubviews(size:60, minSpace:10, maxSpace:CGFloat.greatestFiniteMagnitude)
    vertLayout.tg_padding = UIEdgeInsets.init(top: 5, left: 5, bottom: 5, right: 5)
    vertLayout.backgroundColor = .lightGray
    vertLayout.tg_vspace = 20
    vertLayout.tg_size(width: .fill, height: .fill)
    vertLayout.tg_gravity = TGGravity.fill
    //因为上面tg_setSubviews设置了固定宽度,这个属性设置子视图的高度是填充满子布局视图,因此系统内部会自动设置每个子视图的高度,如果你不设置这个属性,那么你就需要在下面分别为每个子视图设置高度。
    self.view.addSubview(vertLayout)

    for i in 0 ..< 14
    {
        let label = UILabel()
        //label.tg_height.equal(60)  因为子视图的宽度在布局视图的tg_setSubviews中设置了,你也可以在这里单独为每个子视图设置高度,当然如果你的父布局视图使用了tg_gravity来设置填充属性的话,那么子视图是不需要单独设置高度尺寸的。
        label.text = "\(i)" //[NSString stringWithFormat:@"%d", i];
        label.textAlignment = .center
        label.backgroundColor = .red
        vertLayout.addSubview(label)
    }