There's a shadow on my button

前端 未结 3 1125
既然无缘
既然无缘 2021-01-05 11:10

i\'m creating a button programmaticly for an iPad application. when i see the button, there looks to be a shadow type thing below it. what is it and how can i get rid of it?

相关标签:
3条回答
  • 2021-01-05 11:20

    Replace [UIButton buttonWithType:UIButtonTypeRoundedRect] with:

    UIButton *myButton = [UIButton new];
    

    or:

    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
    

    You want to have your customized button. You can still make it with rounded corners if needed.

    0 讨论(0)
  • 2021-01-05 11:33

    This question is old (6 months) but i'have found a solution to delete/mask this bad effect of double lines.

    [yourButton.layer setBackgroundColor: [[UIColor blackColor]CGColor]];
    [yourButton.layer setBorderWidth:1.0f];
    [yourButton.layer setBorderColor:[[UIColor blackColor]CGColor]];
    [yourButton.layer setShadowOpacity:0.1f];
    [yourButton.layer setCornerRadius:10];
    

    UIColor selected is depending of the current background of your view.

    Result : enter image description here

    0 讨论(0)
  • 2021-01-05 11:45

    On iPads, a rounded-rect UIButton always draws a white line along its bottom edge. You can't see that white line if the button's superview is white, but it's still there.

    You have a few options:

    • Make the superview white. This is the easiest but you might not like the way it looks.

    • Make some rounded rect images in your favorite image editor. Set the button type to custom and set your rounded rect images as the button's images.

    • Make a subclass of UIButton and override its drawRect: method.

    • Set the button type to custom and use the button's layer properties (button.layer.backgroundColor, button.layer.borderColor, button.layer.borderWidth, button.layer.cornerRadius) to give the button a rounded rect appearance. You'll have to update button.layer.backgroundColor when the button is touched if you want it to turn blue like a normal one does. (Actually a normal one uses a blue gradient.)

    0 讨论(0)
提交回复
热议问题