Добавление подпрограммы в UIButton

93
8

Я пытаюсь добавить customBadge в качестве подвид UIButton -


это мой код до сих пор -


//msg count initiaition
//CustomBadge *customBadge1 = [CustomBadge customBadgeWithString:@"2"];
CustomBadge *customBadge1 = [CustomBadge customBadgeWithString:@"2"
withStringColor:[UIColor whiteColor]
withInsetColor:[UIColor redColor]
withBadgeFrame:YES
withBadgeFrameColor:[UIColor redColor]
withScale:2.0
withShining:YES];

// Set Position of Badge 1
[customBadge1 setFrame:CGRectMake(self.view.frame.size.width/2-customBadge1.frame.size.width/2+_MsgHeadBtn.frame.size.width/2, 110, customBadge1.frame.size.width, customBadge1.frame.size.height)];
//add badge to view
[_MsgHeadBtn addSubview:customBadge1];


Кнопка, к которой я пытаюсь добавить subview, - это _MsgHeadBtn, которая представляет собой значок электронной почты на верхней части экрана LH снимок экрана ниже.
Я пытался сделать пользовательский значок немного выше и справа от значка электронной почты, но в итоге я получил результат на скриншоте!


enter image description here


Может кто-нибудь предложить какие-либо советы относительно того, где я иду не так??

спросил(а) 2013-10-31T14:03:00+04:00 6 лет, 8 месяцев назад
1
Решение
94

Проблема находится в вашем методе setFrame:. Вы используете self.view.frame.size.width.


Проверьте этот код:


[customBadge1 setCenter:CGPointMake(_MsgHeadBtn.frame.size.width, 0)];
[_MsgHeadBtn addSubview:customBadge1];

или


[customBadge1 setFrame:CGRectMake(_MsgHeadBtn.frame.size.width, 0, customBadge1.frame.size.width, customBadge1.frame.size.height)];
[_MsgHeadBtn addSubview:customBadge1];

ответил(а) 2013-10-31T14:08:00+04:00 6 лет, 8 месяцев назад
54

Отрегулируйте рамку, как показано ниже:

[customBadge1 setFrame:CGRectMake(_MsgHeadBtn.frame.size.width-customBadge1.frame.size.width,-customBadge1.frame.size.height/2, customBadge1.frame.size.width, customBadge1.frame.size.height)];

ответил(а) 2013-10-31T14:13:00+04:00 6 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема