UITextField has bottom border of tintColor - ios

I'm developing an app for a customer that is only used by a small company. This app has a login screen with two text inputs for username and password.
Specs:
Xcode v11.3.1
iPod touch iOS 13.3.1
Swift 5
The user interface was built using the Interface Builder of Xcode. I set the border style of both UITextFields to .roundedRect and they look fine in Interface Builder:
But as soon as I'm testing the app on my iPod touch the UITextFields have an annoying bottom border (or bottom line) of the tint color of the text field:
The lines are red because I've set the tint color of the text fields to red. The only solution (that is clearly not the best one) is to set the tint color to UIColor.clear for both text fields. Then the lines are disappearing. But then the blinking cursor of the text fields are also invisible while editing the text.
I tried a lot of different things like setting the border color of the layer (textfield.layer.borderColor = UIColor.clear.cgColor) but nothing worked out so far.
I also searched the web for similar problems, but it seems that I'm pretty alone with this problem. Any help is appreciated!

Related

Bold Text accessibility option hides UIButtonBarItem graphics

This is a follow-up to a question I asked last week here. The main screen of my app has two button bars. Each of the buttons has either an image or a text label. I've determined that when the user has the Bold Text Accessibility option enabled, the image buttons disappear from the screen. The buttons are functional -- tapping where the button should appear has the desired effect, so the button is effectively present but invisible. The text-based buttons appear and function normally.
Is this expected behavior, or is this a bug in the iOS implementation? If it's a bug, is there a procedure to report it? Is there a workaround? My fallback solution is to display a warning based on UIAccessibilityIsBoldTextEnabled(), but I would like to do better.
I have just had the issue reported to me by one of my customers. I can replicate the issue on iOS12 however Apple appear to have fixed it in iOS13.
My workaround for iOS12 is to set the tintColor of the toolbar:
[toolbar setTintColor:[UIColor grayColor]];
With the tintColor set the toolbar buttons are visible with Bold Text on.

UITableViewCell Detail Text Label Text Color

I have noticed that if I instantiate UITableViewCell instances programmatically, specifying the style .value1 (UITableViewCellStyleValue1), the main text label text color is black, but the detail text label text color is a light shade of gray (not quite exactly UIColor.gray or UIColor.lightGray, though).
However, if I use a storyboard with prototype, static cells and set their Style attribute to "Right Detail" (which appears to be the Interface Builder equivalent of .value1), both labels are black.
I can navigate the cell's subviews all the way to the label and change the text color in the attribute inspector, but I'm not sure the color preset is there.
Is there a right way to unify the appearances of cells in both scenarios, while keeping the traditional gray color in the detail text label?
(I would use dynamic cells and instantiate them programmatically, but this one view controller just happens to have these off-the-shelf cells side-by-side with more complex, custom cells.)
I was also annoyed by the same problem.
Finally I found that Xcode 7.3.1 generated a detail text label with text color R:142, G:142, B:147 (#8E8E93).
Xcode 8.2 generates it with black text color. ('Default', to be exact)
Anyway, changing the label's color to R:142, G:142, B:147 (#8E8E93) is an appropriate one, I think so.
I had the same issue and logged a bug report in the Apple Bug Reporter. My bug report was closed with the comments "Duplicate of 28317724 (Open)". I am not sure if bug reports other than your own are visible, the system does not appear to be very transparent.

Baseline alignment causes UIButton to not be tappable

I have a label and a button on my screen. The button is aligned to the label via the auto layout baseline setting. When I run the app on an iOS 7.1 simulator, this is what happens:
Notice how the button's background (light blue) is all the way at the top of the screen. Tapping on the Button's text does nothing, but tapping on the light blue square trigger's the button's action.
Why is this happening, and how can I fix it?
This looks like it is a bug in iOS 7.1 when aligning buttons with attributed text via their baseline.
There are several ways to fix this:
Use iOS 8: When I tried the same exact behavior on iOS 8.4 simulator, everything worked properly.
Don't use an attributed string.
Align via the center instead of baseline.

Setting text color to clearColor in an iOS 8 Today widget such that it shows the colors behind the Today Screen

If you notice carefully, the system drawn separators for the calendar Today extension are completely transparent and show the colors behind the Today pull-down View.
And I also see some third party widgets making their text transparent this way. The fantastical widget seems to do this for the events below the calendar view.
Setting text to clearColor does not help, the text just vanishes.
Does anyone know what the trick here is?
Thanks.

How do I replicate the iOS keyboard appearance?

I have made a custom number pad keypad for my iOS app, but want it to more closely mirror the appearance of the standard keyboard. I am looking for advice on how to make a standard UIButton look and act like the standard keyboard buttons.
Specifically, I need to figure out the following for the iPad and would like to do as much as possible in an xib or storyboard.
The size of the buttons
The color of the keyboard background (or even better, how can I determine this myself?)
The background color of the button
The font and color of the text in the button
How do I add the shadow under the button?
How do I have the button highlight with the grey color instead of blue?
The spacing between the buttons
How do I keep the "group" of buttons centered as a whole when changing the orientation? (all of the resizing options anchor it to a side and not to each other)
Do the standard buttons use images, or do they modify standard UIButton's? Or more appropriately, which is better for us to do?
UPDATE:
I have created a project for the number pad which is a complete working example. However, I have not spent much time on the actual appearance, which is what this question was mainly about. I have posted it on Github and made it an open source project (covered by the MIT licence, so commercial use is allowed as well). Hopefully other people will find it useful, and hopefully others will feel inclined to help make it better and look more like the native keyboard. The Github repository is at:
https://github.com/lnafziger/Numberpad
If you want to do it mostly in IB, then the following can be done:
Size
Colours
Background Color
Font
Text Color
Shadow (to UILabel's not UITextArea)
Spacing
AutoSizing
There is a cool PSD vector kit for all types of iOS elements that should help:
http://www.smashingmagazine.com/2008/11/26/iphone-psd-vector-kit/
Anyway, to the rest of the answers:
Size
Take a screenshot of the buttons and determine the size in Photoshop, or you can use CMD+i on the image file to see the pixel dimensions. Remember to use CMD+Shift+4 and then drag (and then Space to make the screenshot).
Colours
Use the DigitalColor Meter app that's preinstalled on the Mac, it's pretty cool for all kinds of functions.
Background Color for UIButton
The actual UIButton will have a background color of [UIColor clear], however, for the whole keyboard background, it would be best to create something similar in Photoshop and again using color pickers to get the right gradients. Then you could drag this into IB as a background image.
Font
Again, have a look at fonts/try Helvetica
Text Color
[UIColor black]
Shadow:
Programmatically:
[text setShadowOffset:(0,1)]; // One option
[text setShadowOffset:(0,-1); // Another option
[text setShadowColor:[UIColor whiteColor]];
But, you can also set the shadow in the IB inspector for a UILabel.
Button highlight
Look at the UIButton reference
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIButton_Class/UIButton/UIButton.html
Spacing & Rotation
If your using IB, then you could just drag on the buttons to whatever location.. IB has some autosizing options that determine where the buttons are spaced according to the TOP, LEFT, RIGHT and BOTTOM. You can also set if they are stretchable or not.

Resources