How to make the underlying views gray - ios

I have a UILabel and a UIButton on the UIView (as ORIGIN in screenshot), and then are there any technology to make they gray temporarily? (as EXPECTED in screenshot)
I've try to create a UIVIew (Background color #6666 and alpha 0.75) front of them and get ACTUAL.
https://i.stack.imgur.com/y5xhH.jpg "screenshot"
By the way, the ACTUAL screen shot is captured when presenting a UIAlertController.

Don't set alpha 0.75 instead set 1.0 and you can set title colour for button either in storyboard or xib if you are using storyboard or nib file. You can also set title colour programatically.
[button setTitleColor:[UIColor lightTextColor] forState:UIControlStateNormal];
here button is your button reference and you can set any colour you want.
Edited:
If you have clicked actual image with alert view then you can also set with 0.75 alpha what is best suited you. What only diff i can see is the colour of button text. Which you can set from above mentions methods.

Related

UILabel text color is light

In UIView i have added a label , who's text color is white but when I changes the Alpha of the UIView to 0.25 the color of UILabel lighten If I change Alpha back to 1.0 the UILabel text color result is what I expect.
I have no clue how to change setup.
Screenshot is included.
Also the Alpha is same for the Toolbar and the result is same , icon image of button is also light.
It is normal behaviour because if you change alpha of the parent view it will be propagated to the child views. You can maybe change not the parent view alpha but use colorWithAlphaComponent for this view background color.
e.g.
yourParentView.backgroundColor = UIColor.blueColor().colorWithAlphaComponent(0.5)

I want transparent UIView but not the elements which I added over it

First of all sorry for the Title. I didn't knew how to exactly convey my problem. So my problem is that I have set black color in the background of a UIView and I've made it transparent. But the UI elements which I am adding over it (e.g Buttons, Labels etc) is also getting faded along with the UIView. For example if I set the alpha of UIView to be 0.5 then it automatically applies to all the controls I've added on that UIView which I don't want. So please tell me how to save elements from getting faded.
If you just have to make view transparent not the subviews, then go with
self.view.backgroundColor=[UIColor clearColor];
What it does is, it will make background view transparent, instead setting alpha property will fade subviews also.
instead of writing in code. we can set it in Interface Builder also. By selecting the background color in the Attributes Inspector in the IB you have to click on background color property and select other and there you can set the alpha or any color you want directly which reduces the code.
#Rahul
You can use something like:
view.backgroundColor=[[UIColor alloc] initWithRed:0 green:0 blue:0 alpha:0.5];
This will keep the transparency solely to the background but not the subviews.
What you need to do is, don't change the alpha of the UIView, instead, set backgroundColor with the desired transparency, e.g. if you want to have half transparent black, do view.backgroundColor = [UIColor colorWithWhite:0. alpha:.5];
Good Luck!

UIButton image opacity required

I created a button on interface builder and set set its "image" to a png file and did not set any background image to it.
I want the button background to be transparent so I set its alpha to 0.6 in IB. The problem is I DO NOT WANT the image to be transparent too ( only the surrounding background ) but the image apparently inherits the button alpha and I can see throughout it.
Is there a way to completely avoid the button image to be transparent ?
Thanks
Update 1:
Using Xcode 5.02
I'm testing it on an iOS6 device, but can also test with iOS7 in the simulator.
Update 2:
Apparently the solution is to rescale the images to match the button rectangle.
The problem is that the button has a title that is positioned below the image to describe the functionality. In this case how could I put the text "floating" above the image ?
I'm assuming you're not programming in iOS 7?
Set the backgroundColor property of your UIButton to [UIColor clearColor]`;
If you've connected an IBOutlet to your UIButton then you can do something like this
[myButton setBackgroundColor:[UIColor clearColor]];
This will only work if you have a well defined transparent image. If you have some areas in your image that is not transparent then the above method will not work and you will simply need to edit your image again to make sure all the areas are actually transparent.
If you're in iOS 7, I believe the UIButton is already transparent and its up to your image to do the rest.
UPDATE 1
OP has requested for the title to remain above the image of the UIButton. Here is the solution for that,
What you need to do is set the backgroundImage property of the UIButton instead of simply setting the image of the button which will push the title down as you have found out.
Again I'm assuming you have an IBOutlet connected to your button; simply do the following:
Make sure you delete any image setting code in interface builder so that the properties are blank.
Then implement the code below
//This is the bit that does the magic - setting the background property
[myButton setBackgroundImage:[UIImage imageNamed:#"button.png"] forState:UIControlStateNormal];
//Then you can set the title as you require, the title will be centered floating above your background image.
[myButton setTitle:#"Localised String" forState:UIControlStateNormal];
[myButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
And you will get something like this:
If you are using a proper PNG file with transparency in the file, this works automatically without changing the alpha value. If the PNG does not have the transparent area defined properly you will not be able to achieve this by a property (only by complicated drawing methods, which is probably not want you want).
You have to use a PNG image with transparent background. To remove background colour of a image, Let me suggest you a free tool "GIMP" I've been using it for a while.
As already been said - you can use semi-transparent PNG for image.
As for putting up title over the image - you would need to write some code.
You won't be able to do this in Interface Builder.
So you can easy create button
#interface MyButton : UIButton
#end
#implementation MyButton
- (void)layoutSubviews {
[super layoutSubviews];
[self bringSubviewToFront:self.titleLabel];
}
#end
As for image, covering the whole area - it's better, when possible, to use background image rather image.
For partial background color transparency - you always can set semi-transparent background color for it in IB or in code:
[button setBackgroundColor:[UIColor colorWithWhite:0 alpha:0.5]];

UIColor noColor, but not clearColor

How can I get the UIColor for no color? Y'know, the color represented as a white square with a red diagonal line through it.
TLDR
I'm trying to set the tint color of a UIButton in interface builder, but it's not playing nice, so I'm trying to do it programatically. If I set the button's tint color to [UIColor clearColor], the button disappears. The button only has an image, no text.
This property not available for all types of UIButton
You need to Use another buttonType.you can find this link useful.
the documentation also does not provide information that which specific button types support this property.
so..in general use custom button type
Create your button as custom...
[UIButton buttonWithType:UIButtonTypeCustom]
This will remove your red corner problem since i think your button is created as default (rounded rect) type.
You can set this in interface builder too (not necessarily create it programmatically).

PNG alpha channel on UIButton (iPad)

I am relatively new to iPad programming in cocoa touch.
I have a PNG with an alpha channel. I want to overlay it as a subview on a UIButton so that it looks as though the Button has a border around it. (Alpha channel is the centre of the image so the user must still see through it).
I can't seem to find a way to display the alpha channel correctly. The centre still displays as opaque white.
If I can't do that, how would I go about drawing a border around a UIButton? Subclass UIButton and override -drawRect? Keep in mind that the buttons are programmatically (dynamically) added, as well as the borders. (I don't want to remove the button in order to add the border.) The alpha - solution would be preferable because then I can overlay the border image on the superview (scroll view) and just set the offset to correspond to a button.
You can add images or set images to UIButton, but as far as I know you cannot set an alpha mask to the whole thing (if I understand your question correctly). So a standard button wih a hole in it is not possible. But you can use a custom type button and set the Image to whatever image you want, s o this should give you any desired effect. You can add more subviews to it if you need to refine it later.
Edit with overlay:
UIButton *button = [UIButton buttonWithType....]; // your ordinary button here
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:#"youroverlay.png"]];
// maybe adjust your overlay position here, e.g. imageView.center = .... (use bounds of button, not its frame), or the size directly
[button addSubview:imageView];

Resources