XCode 4: some button titles not visible in iOS simulation - ios

I try to make a simple calculator using Xcode 4 for iPhone. It is my very first iOS application.
I use several buttons with titles: 1, 2,...9, +, =, -...
But when I run the program in iOS simulation, some of the buttons do not show their titles (i.e. they have nothing written on them).
The buttons without the titles are somewhat random: majorly the ones at the bottom of the screen, but also one on the top. The other buttons show their titles normally.
What the hell?

I had the same experience while doing the iOS calculator app from the iTunes U Piazza course. I think it started when I moved some of the buttons. I checked in the MainStoryboard.storyboard file with text edit - it appears that the height constraint went missing from these buttons - not clear how/why
whatever the root cause , I was able to fix it only by deleting the buttons in question and recreating them in the xcode editor

Try simply copy and pasting the duff control - I had this problem after changing the view from inferred to retina 3.5

This can be fixed by turning off "AutoLayout" on the storyboard. more info here: https://stackoverflow.com/a/16556044/26510

Changing text type from attributed to plain worked for me.

Per Apple developer guide, you should not set either the button title label text or color directly as a property (for example, do not do this: myButton.titleLabel.text=#"SomeText" or myButton.titleLabel.textColor=[UIColor blackColor]).
Rather, you set them using the UIButton setter functionality, like this:
[myButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
...or like this:
[myButton setTitle:#"SomeText" forState:UIControlStateNormal];.
See the Apple guide.

I Figure it out that there are some reasons why this can happen. In my case the problem was that I was setting the background image as button image, so the text was right-shifted out of the bounds of the button.

Related

iOS Swift first app, controls dont appear

I have created my first app with xcode and swift followin a tutorial.
I have added a button and 2 images to the main story board.
I have also added some easy code:
http://screencast.com/t/m8DVzHNNz60M
However when I run the app, the simulator is blank, nothing in it, and the button I know its not hidden.
There are a few things that could be wrong.
1. Your button isn't centered. You need to center it using constraints. Check out this: https://stackoverflow.com/a/26959256/5143847
2. In your IBAction, you are hiding your button. Try this:
uncoolButton.hidden = false
Or you can just remove it completely. Based on your question, it seems like you want to keep the button showing.

Swift UIButton - How to remove underline?

I have problem when in iOS settings is enabled this setting "Button Shapes"
It causing this underline in application (first picture with enabled setting, second without)
Any idea how to programatically or in storyboard disable it?
I tried attributed text but I get same result :(
I'm newbie in Swift.
Thanks for help!
It's not a problem. You should not make any attempt to counter any accessibility changes set by the user. They are there for a reason.
This is an answer by user4291543 from this question Remove underline on UIButton in iOS 7
[yourBtnHere setBackgroundImage:[[UIImage alloc] init] forState:UIControlStateNormal];
I found this answer works with SWFrameButton
And for all the others saying "Don't Do This", SWFrameButton is a very good example of when you would want to do this. I also think the OP's situation is a perfectly valid scenario as well...
I totally agree with #maddy's comment:
It's not a problem. You should not make any attempt to counter any accessibility changes set by the user. They are there for a reason.
But I did stumble on a way to accomplish the task at hand...
In addition to a UIButton, you'll also need to make a .png file that contains nothing (meaning the entire contents have an opacity of 0%). Go ahead and load that into your xcode project's assets.
Now go ahead and set the Button's Background to that image you just provided. (In my case, I called it clear) This will remove the underline from the button's text. However, now you can't see the boundaries of the button. This can be solved by changing the Background of the button's View. Go ahead and select any color for the View's Background property and now the background of the View visibly defines the button's boundaries. You're able to see this because your clear.png has an opacity of 0%.
see the Attributes inspector for UIButton here.
Rather than trying to defeat the underline by going to make a label perform some action via UITapGestureRecognizer, this allows you to still use a UIButton. Keeping inline with accessibility features to mark buttons for people that want to do that.
You could create a custom button class with a label (with clear color). If you set the text of this label instead it shouldn`t get an underline.
Are you sure you want to do that?
Apple added an accessibility feature to mark buttons for people that want to do that. Apple will probably reject your app because it defeats a system function meant to help the disabled.
I found the solution. All you have to do is set a picture as the background of the button. just pick a picture with the same color as the button you created.

UITextView attributes inspector not showing full set of attributes

I have two Macs, both with the latest OS and Xcode versions. We're developing for iOS7.
On one Mac, everything seems OK. On the other, when I drop a UITextField onto a View Controller scene, the attributes inspector shows only a small subset of the attributes available.
I would expect to see something similar to the UITextView attributes but instead I see only this:
Have I done something wrong here or is this a bug? I seem to remember having edited attributes on a UITextField that I added earlier to another scene (font, text size, etc) but these are not available now.
I made a stupid mistake and I guess that someone else could do the same. I must have inadvertently clicked on the "Text Field" label at the top of the attributes panel and then scrolled up, missing it completely.
Doh!

UIButton title set in Storyboard is missing when run

I am quite new to iOS development and I encountered a problem when I was trying out a simple calculator tutorial. For some reason, the "0" and "=" does not appear on the iOS simulator while it appeared perfectly fine on the user interface shown on XCode.
Any idea on how to resolve this problem?
Thanks! =)
Just set the Style value to "Default" from "Attributes Inspector" tab as shown in the image below.
Now you should see the Font, Color and other attributed properties are back :)
In my case the button title disappeared, when I made changes to its attributes. Changing the Button title back to 'plain' and back again to 'attributed' made the text visible again.
One possibility could be that you accidentally set the titles of those two buttons on a control state other than default or UIControlStateNormal.
The buttons in your screenshot are in a state called UIControlStateNormal because they aren't being tapped or disabled. Select the buttons and make sure the 'State Config' option in the Attributes inspector is set to 'Default' when you're setting your title in Storyboard.
EDIT
Autolayout sometimes causes unintended behavior like this. If you aren't relying on Autolayout and don't plan to, you can turn it off in the File inspector. If you are relying on Autolayout, you'll have to write some code to undo the unintended behavior it's causing.

How to write multiple lines in a label

I have a XIB file of type View XIB. In it I have a View controller, and in the View controller I have a label.
I have long text that I want to break, but it doesn't - it gets truncated.
I tried this solution - I did it in the attribute window - but it doesn't help.
You could use a TextView and disable the Editable and User Interaction Enabled options in IB.
use this
myLabel.lineBreakMode = UILineBreakModeWordWrap;
if you are worried about backwards compatibility use this because the comand i mentioned before was introduced in iOS 6.0
myLabel.numberOfLines = 0;
I have been running into a similar problem. I started out with a label, but wanted multi-lines and a UITextView worked great for this, at first. Because I am using a third party library (MBProgressHUD) to handle stuff like progress messages and what not, I had thread problems when trying to update a UITextView and show the progress message at the same time.
So I went back to UILabel which actually didn't have thread problems. I found a property to allow a specific number of lines of my choosing, and had to create the label big enough to display those lines. The downfall to this approach is that I don't get the context menus like Copy, Paste, etc. but more importantly I'm not running into thread problems. I can always embed this into a UIScrollView in the future if I so choose.
You could check out my category for UILabel on GitHub. https://gist.github.com/1005520
This lets you resize the height of the label to accommodate the content.
From the Attiribute inspector, choose LineBreaks->Word Wrap option when you have selected the lablel. Also increase the number of lines Label->Lines.
Try Following steps to solve issue :
Drag out a UITextView.
Double-click it to edit text, place cursor where you want the
paragraph break.
Option-Enter a couple of times to create a blank line & paragraph.

Resources