UIButton отображается неправильно - PullRequest
0 голосов
/ 09 июля 2020

Мне очень трудно понять, как заставить UIButton выглядеть правильно. По сути, это должно выглядеть так:

введите описание изображения здесь

UIButton настраивается в раскадровке и имеет соответствующие ограничения. Затем в коде я пытаюсь настроить его специально для моего варианта использования. Вот код из моего метода:

- (void)setupSkipBreakButton
{
    NSString* buttonText = BMStringInApplicationLanguageForKey(skipIntroTextKey);;
    [self.skipBreak setTitle: buttonText forState: UIControlStateNormal];
    UIImage *skipBreak = [UIImage bm_imageWithBundlePath:BMVideoPlayerControlRackViewSkipBreakImageName];
    
    
    [self.skipBreak setTitleEdgeInsets:UIEdgeInsetsMake(3.0, 1.0, 3.0, 0.0)];
    [self.skipBreak setImageEdgeInsets:UIEdgeInsetsMake(3.0, 0.0, 3.0, 2.0)];
    [self.skipBreak setImage:skipBreak forState:UIControlStateNormal];
    self.skipBreak.backgroundColor = [[UIColor bm_colorWithHexString:BMVideoPlayerDefaultColor]
                                                   colorWithAlphaComponent:BMVideoPlayerDefaultAlpha];
    [self.skipBreak addTarget:self action:@selector(skipBreakButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
}

Вместо этого кнопка фактически имеет 2 стрелки вправо на левой стороне «Пропустить вступление», тогда как она должна быть справа, как согласно приведенному выше изображению.

Я не вижу в моем коде ничего, что связано с позиционированием изображения в отличие от текста (кроме UIEdgeInsets?). Итак, я не понимаю, как решить эту проблему.

Пожалуйста, помогите?

1 Ответ

1 голос
/ 09 июля 2020

Вот код, чтобы делать то, что вы хотите. В основном вам нужно проверить значение, которое вы передаете в UIEdgeInsetsMake.

 UIImage *skipBreak = [UIImage imageNamed:@"testpic.png"];
    [self.button setTitle:@"Tesst" forState:UIControlStateNormal];
    [self.button setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 0.0, 0.0, 30.0)];
    [self.button setImage:skipBreak forState:UIControlStateNormal];
    [self.button setImageEdgeInsets:UIEdgeInsetsMake(0.0, 0.0, 0.0, -57)];
    [self.button setBackgroundColor:[UIColor yellowColor]];

, результат которого ниже:

enter image description here

I would suggest if you still not able to set the image the best and easy way to use the storyboard.

Step:

  1. Add a button on the storyboard
  2. Add A image in the button

Now use these options and play with them. Best way to learn. введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...