iOS-Charts Library: BarChart background color fill - ios

I am using a Charts library by Daniel Gindi.
I need to make a diagram like in this screenshot. Set a different background color. Could you do that? I looked at the library and found no way to do this.
Thanks.

There is a nice tutorial on AppCoda for iOS charts by Daniel Gindi.
"If you want a different color for each data entry, then you have to provide as many colors as the total number of data entries you have".
In order to change the color of the bar chart, you'll need to change the color of the dataset you're representing. Like so:
chartDataSet.colors = [UIColor(red: 230/255, green: 126/255, blue: 34/255, alpha: 1)]
If you mean to change the chart's background color, you need to put this in your code:
chart.backgroundColor = .white

Look, I specifically added the same arrays of data, and I added them to one bar chart. What I mean is that the same values alternate. They aren't represented one after another. So, it means that if you had a different background color for each bar, this wouldn't probably look nice imho.
I hope someone else will try to reproduce your question so that we have more opinions here :)

Use following configuration to barchar
barChart.drawBarShadowEnabled = true
Then use
chartDataSet.barShadowColor = .systemGray5
It works.

Related

Swift CHARTS library how to change the legend colour to reflect Bar chart colour

I am using CHARTS library in swift. https://github.com/danielgindi/Charts and tutorial from the link https://www.appcoda.com/ios-charts-api-tutorial/ on how to customise to suit your needs.
I am trying to change the Bar chart colour using the commands below as listed in the tutorial. While the bar chart colour changes correctly but the 'legend' colour listed below the bar chart is not updated. Can some suggest how to change the legend colour to reflect the bar chart.
2 different commands suggested in the tutorial, first one to change all the bars to one single colour and second to change to multiple colours. Both works fine for changing bar chart colour but NOT the legend.
chartDataSet.colors = [UIColor(red: 230/255, green: 126/255, blue: 34/255, alpha: 1)]
chartDataSet.colors = ChartColorTemplates.colorful()
The documentation says you should refer to the android documentation.
https://github.com/PhilJay/MPAndroidChart/wiki/Legend
That one says:
you can retreive the Legend object from the chart using the
getLegend() method
Then you will have access to methods that modify the way legends look.
Styling / modifying the legend
setTextColor(int color): Sets the color of the legend labels.
setTextSize(float size): Sets the text-size of the legend labels in
dp. setTypeface(Typeface tf): Sets a custom Typeface for the legend
labels.
For swift 5 + general color change
BarChartView.legend.textColor = UIColor.white
if you want to give some special format , you can refer to
Formatting Custom Legend Entries in Chart's PieChartView?

IOS figure out shade of in grey keyboard buttons

IOS default keyboard has the following buttons:
I am trying to make my own custom keyboard and I need to figure out the shade of grey/style (if they use something special to achieve that grey look) of these buttons.
I thought the RGB value was: (170,170,170)
but the UIColor UIColor.init(red: 2/3, green: 2/3, blue: 2/3, alpha: 1)
lends me a darker color that looks like this:
Am I possibly missing a transparency value and if so how can I figure it out?
You can use a color picker to figure it out.
It's (173, 180, 190).

Improve UILabel text visibility in Swift

I am showing the text on an UIImage in UITableViewCell, but UILabel text is dull. How to improve label text brightness? I have added Label on Image. I am also using Shadow image in label to make the text more visible, but the text is more dull in iPhone 6 Simulator.
How to manage it? And any other way to achieve this
And image or a description of what kind of "improvements" you are looking for would help to help you out better.
But the 2 most important things are probably font and color.
if you want to change the textColor. Use
myUILabel.textcolor = UIColor(red: 16/255.0, green: 177/255.0, blue: 216/255.0, alpha: 1)
Obviously changing the RGB values to something that looks good in your app.
to change the font and fontsize use something like this:
myUILabel.font = UIFont(name: "BPreplay", size: 20)
Also it's always better to test on an actual device. Gives you a much better view on how it feels on the phone.

Add a color picker to an iOS app

I'm trying to add a color picker to my iOS application, using Xcode 5. It appears that Xcode offers a color well via the Palettes Panel of Interface Builder, but I can't find the Palettes Panel (nor can I find any documentation of it online beyond that link).
That link also suggests an NSColorWell can be added programatically. I'd prefer to go the Interface Builder route, but if that's not an option sample code would be welcome.
I had the same question as you. It's unfortunate that there is no built in color picker for iOS. The other answers here and for similar questions mainly use third party libraries or projects. I prefer to avoid all the third party stuff whenever possible, so that leaves us with...
Make your own color picker
There are many ways you could do it, but here is a simple example to show the concept. I set up my story board like this:
It has a UIView (grey here) to show the chosen color, a UIImageView to show the color choices, and a UISlider to choose the color. I used the following image in the UIImageView:
I made it from the colors of a 12-spoke color wheel using a screen shot and Gimp's color picker tool. Gimp is also useful for getting the color hex codes we will use later.
Set the min and max values for the Slider to 0.5 and 13.5. Converting the slider values to integers later will give one number for each of the colors in our image. Starting at 0.5 rather than 0 makes the slider color change location match the image better.
Hook up the UI elements to the View Controller and use the following code to convert the slider position to colors.
class ViewController: UIViewController {
// RRGGBB hex colors in the same order as the image
let colorArray = [ 0x000000, 0xfe0000, 0xff7900, 0xffb900, 0xffde00, 0xfcff00, 0xd2ff00, 0x05c000, 0x00c0a7, 0x0600ff, 0x6700bf, 0x9500c0, 0xbf0199, 0xffffff ]
#IBOutlet weak var selectedColorView: UIView!
#IBOutlet weak var slider: UISlider!
#IBAction func sliderChanged(sender: AnyObject) {
selectedColorView.backgroundColor = uiColorFromHex(colorArray[Int(slider.value)])
}
func uiColorFromHex(rgbValue: Int) -> UIColor {
let red = CGFloat((rgbValue & 0xFF0000) >> 16) / 0xFF
let green = CGFloat((rgbValue & 0x00FF00) >> 8) / 0xFF
let blue = CGFloat(rgbValue & 0x0000FF) / 0xFF
let alpha = CGFloat(1.0)
return UIColor(red: red, green: green, blue: blue, alpha: alpha)
}
}
Now if you run it, you can choose the color by moving the slider back and forth.
Variations
Position the slider on top of the image and set the track tints to transparent. This gives it the feel of a custom UI without having to subclass anything.
Here is another image with lighter and darker variations of the example project image.
let colorArray = [ 0x000000, 0x262626, 0x4d4d4d, 0x666666, 0x808080, 0x990000, 0xcc0000, 0xfe0000, 0xff5757, 0xffabab, 0xffabab, 0xffa757, 0xff7900, 0xcc6100, 0x994900, 0x996f00, 0xcc9400, 0xffb900, 0xffd157, 0xffe8ab, 0xfff4ab, 0xffe957, 0xffde00, 0xccb200, 0x998500, 0x979900, 0xcacc00, 0xfcff00, 0xfdff57, 0xfeffab, 0xf0ffab, 0xe1ff57, 0xd2ff00, 0xa8cc00, 0x7e9900, 0x038001, 0x04a101, 0x05c001, 0x44bf41, 0x81bf80, 0x81c0b8, 0x41c0af, 0x00c0a7, 0x00a18c, 0x00806f, 0x040099, 0x0500cc, 0x0600ff, 0x5b57ff, 0xadabff, 0xd8abff, 0xb157ff, 0x6700bf, 0x5700a1, 0x450080, 0x630080, 0x7d00a1, 0x9500c0, 0xa341bf, 0xb180bf, 0xbf80b2, 0xbf41a6, 0xbf0199, 0xa10181, 0x800166, 0x999999, 0xb3b3b3, 0xcccccc, 0xe6e6e6, 0xffffff]
Use an array of UIColors to avoid having to do the hex conversion.
Could use multiple UIViews rather than an image, and then set the colors directly from the array.
Further study
Color Theory For Designers, Part 2: Understanding Concepts And Terminology
Color Theory For Designers: Creating Your Own Color Palettes
Simple swift color picker popover (iOS)
I thought I would throw my color picker into the ring. I use it in my app, You Doodle and I spent a couple weeks making it and testing it in the app. It contains a sample project to show you how to get started with it and is open sourced under the MIT license. It supports any device (iOS 6+), any resolution and portrait and landscape. Favorites, recents, color by hue, color wheel and importing textures, as well as deleting and moving favorites to the front is supported.
I've tried to combine the good pieces of all the other color pickers and ensure that the MIT license allows a no hassle integration into any project.
Github: https://github.com/jjxtra/DRColorPicker
Screenshots:
There is another cool color picker made by kartech. It has awesome UI for the selection of colors. Moreover you can mark colors as favorite. Link is here.
Screenshots:
If your app has a minimum deployment target of iOS 14, you can use the built-in UIColorPickerViewController.

How to set the colour to Cayenne programmatically

Just a quick question...
In interface builder, you have several colours that you can assign to objects.
I would like to set the headers of my tableview to the Cayenne colour but how can I call this colour programmatically ?
Any idea ?
Thanks,
Mike
Actually, I have found a way to do it by using Digital Color Meter which is a too you can find in the Utilities Folder in your Application Folder on MacOsx.
You pick the color with the tool, that gives you an RGB value and then you divide the numbers by 100. For the Cayenne, color, the tool values were 49.8 0 0, and so the equivalent is :
[UIColor colorWithRed:.498 green:0 blue:.0 alpha:1]
Hope it will help others.
Miky Mike
What MikyMike had is close, but you need to divide by 255, not by 100. The accepted answer in Using [UIColor colorWithRed:green:blue:alpha:] doesn't work with UITableView seperatorColor? shows a good way to do this.

Resources