             height += frame.height + style.itemSpacing
         }
         self.frames = frames
-        self.size = CGSize(width: bbox.width, height: height)
+        self.size = CGSize(width: bbox.width, height: height).pixelRounded()
     }
 }
 

    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
        

        var frames: [CGRect] = [CGRect]()
        
        for item in items {
            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
