Agregar una subview a UIButton

Estoy intentando agregar un customBadge como una subvista de un UIButton –

este es mi código hasta ahora;

//msg count initiaition //CustomBadge *customBadge1 = [CustomBadge customBadgeWithString:@"2"]; CustomBadge *customBadge1 = [CustomBadge customBadgeWithString:@"2" withStringColor:[UIColor whiteColor] withInsetColor:[UIColor networkingColor] withBadgeFrame:YES withBadgeFrameColor:[UIColor networkingColor] 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]; 

El button al que bash agregar la subvista es _MsgHeadBtn, que es el icono de correo electrónico en la parte superior izquierda de la captura de pantalla a continuación. Estaba tratando de hacer que la insignia personalizada aparezca ligeramente arriba y a la derecha del icono de correo electrónico, ¡pero termino con el resultado en la captura de pantalla!

introduzca la descripción de la imagen aquí

¿Alguien puede ofrecer algún consejo sobre dónde me voy mal?

El problema está dentro de su setFrame: method. Está utilizando self.view.frame.size.width .

Verifique con este código:

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

o

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

Ajuste su marco como a continuación:

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