将子视图添加到UIButton

Dan*_*cer 5 objective-c uibutton addsubview ios

我正在尝试添加一个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];
Run Code Online (Sandbox Code Playgroud)

我正在尝试添加子视图的按钮是_MsgHeadBtn,这是下面屏幕截图的顶部LH上的电子邮件图标.我试图使自定义徽章在电子邮件图标的上方和右侧略微显示 - 但我最终得到了屏幕截图中的结果!

在此输入图像描述

任何人都可以提出任何关于我哪里出错的建议!?

Mid*_* MP 5

问题在您的setFrame:方法范围内.你正在使用self.view.frame.size.width.

检查此代码:

[customBadge1 setCenter:CGPointMake(_MsgHeadBtn.frame.size.width, 0)];
[_MsgHeadBtn addSubview:customBadge1];
Run Code Online (Sandbox Code Playgroud)

要么

[customBadge1 setFrame:CGRectMake(_MsgHeadBtn.frame.size.width, 0, customBadge1.frame.size.width, customBadge1.frame.size.height)];
[_MsgHeadBtn addSubview:customBadge1];
Run Code Online (Sandbox Code Playgroud)