                 self.bottom = bottom
             case let .width(width):
                 self.width = width
-            case let .heigth(heigth):
-                self.heigth = heigth
+            case let .height(height):
+                self.height = height
             case let .range(range):
                 self.range = range
             case let .cellSize(cellSize):
-                self.cellSize = cellSize
+                self.cellSize = OneOrMore(one: cellSize)
+            case let .cellSizes(cellSizes):
+                self.cellSize = OneOrMore(more: cellSizes)
             case let .orient(orient):
                 self.orient = orient
             case let .splitLine(splitLine):


extension Calendar: Enumable {
    public enum Enums {
        case zlevel(Float), z(Float), left(Position), top(Position), right(Position), bottom(Position), width(LengthValue), heigth(LengthValue), range(Jsonable), cellSize(OneOrMore<Float>), orient(Orient), splitLine(SplitLine), itemStyle(ItemStyle), dayLabel(DayLabel), monthLabel(MonthLabel), yearLabel(YearLabel), silent(Bool)
    }
    
    public typealias ContentEnum = Enums

        public var rich: [String: Jsonable]?
    }
    
    /// 所有图形的 zlevel 值。
    ///
    /// zlevel用于 Canvas 分层，不同zlevel值的图形会放置在不同的 Canvas 中，Canvas 分层是一种常见的优化手段。我们可以把一些图形变化频繁（例如有动画）的组件设置成一个单独的zlevel。需要注意的是过多的 Canvas 会引起内存开销的增大，在手机端上需要谨慎使用以防崩溃。
