Search code examples
iosswiftxcodejtcalendar

Setting size of JTCalendar cell


I am working through the tutorial of JTCalendar (version 6.1.5). When I run on smaller phones such as the iPhone SE, one side of the circle in the Selection View gets clipped. This because the cells are about 45x45 points, but the Selection View's size is 50x50 points and is therefore too large to fully fit into the cell.

  • How can I make my selection view fit properly into date cells of varying sizes?

  • How can I get the proper value of cornerRadius for the selection view circle?


Solution

  • I was able to resolve this issue. The problem is that the tutorial set the size of the Selected View and left it at that. What I did was

    1. Made Outlets for both the width and height constraints in CellView.swift

    2. In ViewContoller.swift, I modified cell selection as follows:

      if cellState.isSelected {
          var parentMinDimension = min(view.frame.width, view.frame.height)
          parentMinDimension = round(parentMinDimension - 0.5)
          myCustomCell.widthConstraint.constant = parentMinDimension
          myCustomCell.heightConstraint.constant = parentMinDimension
          myCustomCell.selectedView.layer.cornerRadius = parentMinDimension / 2
          myCustomCell.selectedView.isHidden = false
      } else {
          myCustomCell.selectedView.isHidden = true
      }
      

    This gets the parent view and determines the smaller dimension. This needs to be rounded down. I then uses this parent view dimension to set the width and height of the CellView as well as for determining the corner radius.