Skip to content

labelGenerator creating Multiple labels for each Part #65

@ChanakyaHirpara

Description

@ChanakyaHirpara

var colors:[UIColor] = [ UIColor(hexString: "#F69300"), UIColor(hexString: "#93D460"), UIColor(hexString: "#5D86EF"), UIColor(hexString: "#F16051"), UIColor(hexString: "#FFFFFF")]
var texts:[String] = [ "Lorem", "Ipsum", "Correct", "Wrong", "Correct"]
var percentages:[CGFloat] = [15,12,18,25,30]
var textLayers:[PieLineTextLayer] = []
var sliceModels:[PieSliceModel] = []

for index in stride(from: 0, to: texts.count, by: 1) {
        
        sliceModels.append(PieSliceModel(value: Double(percentages[index]), color: colors[index]))
        
        let textLayerSettings = PieLineTextLayerSettings()
        textLayerSettings.label.font = Fonts.bold(size: 17)
        textLayerSettings.label.textColor = UIColor(hexString: "#F69300")

        let formatter = NumberFormatter()
        formatter.maximumFractionDigits = 1
        
        let textToSet = "\(percentages[index])% \(texts[index])"
        
        textLayerSettings.label.labelGenerator = { slice in
            
            let lbl = UILabel(frame: CGRect.zero)
            lbl.sizeToFit()
            lbl.text = textToSet
            lbl.textColor = self.colors[index]
            lbl.font = Fonts.bold(size: 18)
            
            lbl.setfont(text: textToSet, words: [self.texts[index]], firstFont: Fonts.bold(size: 18), secondFont: Fonts.medium(size: 14), wordColor: UIColor.white)
            return lbl
        }
        
        textLayerSettings.label.textGenerator = {slice in
            return textToSet
        }

        let textLayer = PieLineTextLayer()
        textLayer.settings = textLayerSettings
        
        textLayers.append(textLayer)
        
    }
    
    pieChart.models = sliceModels
    
    pieChart.layers = textLayers

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions