         var frames: [CGRect] = [CGRect]()
         
         for item in items {
-            let size = item.sizeThatFits(CGSize(width: bbox.width, height: bbox.height))
+            let size = item.sizeThatFits(CGSize(width: bbox.width, height: bbox.height)).pixelCeiled()
             
             var frame = CGRect(origin: CGPoint(x: 0, y: height), size: size)
             frame.centerX = bbox.width / 2

    init(items: [T], style: Style, bounds: CGRect) {
        self.itemLayout = ItemLayout(items: items, style: style)
        
        var contentFrame = CGRect(origin: CGPoint(), size: itemLayout.size).integral
        contentFrame.right = bounds.right - style.indexInset.right + style.indexOffset.horizontal
        contentFrame.centerY = bounds.centerY + style.indexOffset.vertical
        

        backgroundFrame.moveTop(unboundTopInset ? 0 : backgroundFrame.top - style.indexInset.top)
        backgroundFrame.moveBottom(unboundBottomInset ? bounds.bottom : backgroundFrame.bottom + style.indexInset.bottom)

        self.backgroundFrame = backgroundFrame
    }
}
