需求:点击“…”按钮,出现“举报”按钮;点击“举报”按钮以外的区域,“举报”按钮消失

效果如图:

 

思路:

方法1:将“举报”按钮加上cell上面,按钮的位置很好设置,但是需求要“举报”按钮消失,在最外层view没有办法控制cell里面的控件。所以这个方法行不通

方法2:点击“…”按钮,在最顶层添加一个view,view里面添加“举报”按钮,还有“消失”的按钮。难点在于:“举报”按钮的位置如何设置。

核心代码:

UIWindow *window = [[[UIApplication sharedApplication] delegate] window];

CGRect rect = [self.moreButton convertRect:self.moreButton.bounds toView:window];//获取“...”按钮的位置

self.tipoffView.frame = CGRectMake(0, 0, screenW, screenH);

self.tipoffButton.frame = CGRectMake(rect.origin.x - 40, rect.origin.y+16, 56, 40); //“举报”按钮在“...”按钮的下方

[self.tipoffView addSubview:self.tipoffButton];

[window addSubview:self.tipoffView]; //加在最顶层