创建PopViewControlller
在tableview中创建一个tableview用于显示菜单
//重置控制器的大小
-(CGSize)preferredContentSize{
if (self.popoverPresentationController != nil) {
CGSize tempSize ;
tempSize.height = self.view.frame.size.height;
tempSize.width = 150;
CGSize size = [_tableVIew sizeThatFits:tempSize];
return size;
}else{
return [super preferredContentSize];
}
}
在viewcontroller中需要使用到得地方添加类似的代码
environmentView.addMenuCallBack = ^(UIButton *sender){
// 设置大小
weakPopView.preferredContentSize = CGSizeMake(120, 150);
// 设置 Sytle
weakPopView.modalPresentationStyle = UIModalPresentationPopover;
// 需要通过 sourceView 来判断位置的
weakPopView.popoverPresentationController.sourceView = sender;
//可以指示小箭头颜色
weakPopView.popoverPresentationController.backgroundColor = [UIColor whiteColor];
// 设置指示箭头的位置
weakPopView.popoverPresentationController.sourceRect = CGRectMake(0, 0, sender.frame.size.width*3/4, sender.frame.size.height);
// 箭头方向
weakPopView.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
// 设置代理
weakPopView.popoverPresentationController.delegate = weakSelf;
[weakSelf presentViewController:weakPopView animated:YES completion:nil];
};