@interface ViewController ()<UIScrollViewDelegate,UIPopoverPresentationControllerDelegate>{
NSMutableArray *arr;
UIButton *btn;
}
@property (nonatomic, strong) UISegmentedControl *segmentedControl;
@property (nonatomic, strong) UIScrollView *scrollView;
@property (nonatomic, strong) OneViewController *oneVC;
@property (nonatomic, strong) TwoViewController *twoVC;
@property (nonatomic, strong) ThreeViewController *threeVC;
@property (nonatomic, strong) FourViewController *fourVC;
@property (nonatomic, strong) FiveViewController *fiveVC;
@property (nonatomic, strong) SixViewController *sixVC;
@property (nonatomic, strong) UIPopoverPresentationController *pop;
- (void)viewDidLoad?
{
//? ? 創(chuàng)建一個(gè)view,放分段控制器
UIView *vv = [[UIView alloc]initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, 30)];
[self.view addSubview:vv];
//? ? 存儲(chǔ)分段控制器標(biāo)題
arr = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",nil];
// 適應(yīng)scrollView
self.automaticallyAdjustsScrollViewInsets = NO;
//? ? 創(chuàng)建分段控制器
self.segmentedControl = [[UISegmentedControl alloc]initWithItems:arr];
self.segmentedControl.frame = CGRectMake(0, 0, 386, 30);
//? ? 加載到vv上
[vv addSubview:self.segmentedControl];
[self.segmentedControl addTarget:self action:@selector(segmentedControlAction:) forControlEvents:UIControlEventValueChanged];
//? ? 默認(rèn)第一個(gè)視圖
self.segmentedControl.selectedSegmentIndex = 0;
// 創(chuàng)建scrollView
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 94, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 64)];
[self.view addSubview:self.scrollView];
// 設(shè)置scrollView的內(nèi)容
self.scrollView.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width * 6, [UIScreen mainScreen].bounds.size.height - 64);
self.scrollView.pagingEnabled = YES;
self.scrollView.bounces = YES;
// 創(chuàng)建控制器
self.oneVC = [OneViewController new];
self.twoVC = [TwoViewController new];
self.threeVC = [ThreeViewController new];
self.fourVC = [FourViewController new];
self.fiveVC = [FiveViewController new];
self.sixVC = [SixViewController new];
// 添加為self的子控制器
[self addChildViewController:self.oneVC];
[self addChildViewController:self.twoVC];
[self addChildViewController:self.threeVC];
[self addChildViewController:self.fourVC];
[self addChildViewController:self.fiveVC];
[self addChildViewController:self.sixVC];
//? ? 每個(gè)視圖
self.oneVC.view.frame = CGRectMake(0, 0, self.scrollView.frame.size.width, CGRectGetHeight(self.scrollView.frame));
self.twoVC.view.frame = CGRectMake([UIScreen mainScreen].bounds.size.width, 0, self.scrollView.frame.size.width, CGRectGetHeight(self.scrollView.frame));
self.threeVC.view.frame = CGRectMake([UIScreen mainScreen].bounds.size.width*2, 0, self.scrollView.frame.size.width, CGRectGetHeight(self.scrollView.frame));
self.fourVC.view.frame = CGRectMake([UIScreen mainScreen].bounds.size.width*3, 0, self.scrollView.frame.size.width, CGRectGetHeight(self.scrollView.frame));
self.fiveVC.view.frame = CGRectMake([UIScreen mainScreen].bounds.size.width*4, 0, self.scrollView.frame.size.width, CGRectGetHeight(self.scrollView.frame));
self.sixVC.view.frame = CGRectMake([UIScreen mainScreen].bounds.size.width*5, 0, self.scrollView.frame.size.width, CGRectGetHeight(self.scrollView.frame));
//加載到滾動(dòng)視圖上
[self.scrollView addSubview:self.oneVC.view];
[self.scrollView addSubview:self.twoVC.view];
[self.scrollView addSubview:self.fourVC.view];
[self.scrollView addSubview:self.fiveVC.view];
[self.scrollView addSubview:self.threeVC.view];
[self.scrollView addSubview:self.sixVC.view];
self.scrollView.delegate = self;
//? ? 按鈕
btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
//按鈕位置
btn.frame = CGRectMake(385, 0, 30, 30);
//? ? 按鈕背景顏色
btn.backgroundColor = [UIColor whiteColor];
[btn setTitle:@"+" forState:0];
btn.layer.borderWidth = 1;
btn.layer.borderColor = [UIColor blueColor].CGColor;
//? ? 按鈕點(diǎn)擊事件
[btn addTarget:self action:@selector(btnclick) forControlEvents:UIControlEventTouchUpInside];
//? ? 加載
[vv addSubview:btn];
}
//分段控制器方法
- (void)segmentedControlAction:(UISegmentedControl *)sender
{
[self.scrollView setContentOffset:CGPointMake(sender.selectedSegmentIndex * self.scrollView.frame.size.width, 0) animated:YES];
}
//滾動(dòng)視圖代理方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSInteger n = scrollView.contentOffset.x / scrollView.frame.size.width;
self.segmentedControl.selectedSegmentIndex = n;
}
//實(shí)現(xiàn)按鈕方法
-(void)btnclick{
//初始化內(nèi)容視圖控制器
PopViewController *popview = [[PopViewController alloc]init];
//設(shè)置大小
popview.preferredContentSize = CGSizeMake(150, 140);
// 設(shè)置彈出效果
popview.modalPresentationStyle = UIModalPresentationPopover;
//初始化一個(gè)popover
self.pop = popview.popoverPresentationController;
self.pop.delegate = self;
//設(shè)置彈出視圖的顏色
self.pop.backgroundColor = [UIColor whiteColor];
//設(shè)置popover的來源按鈕(以button誰為參照)
self.pop.sourceView = btn;
//設(shè)置彈出視圖的位置(以button誰為參照)
self.pop.sourceRect = btn.bounds;
//箭頭的方向 設(shè)置成UIPopoverArrowDirectionAny 會(huì)自動(dòng)轉(zhuǎn)換方向
self.pop.permittedArrowDirections = UIPopoverArrowDirectionUp;
//模態(tài)出彈框
[self presentViewController:popview animated:YES completion:nil];
}
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller{
return UIModalPresentationNone;
}
//點(diǎn)擊蒙版是否消失筷登,默認(rèn)為yes;
-(BOOL)popoverPresentationControllerShouldDismissPopover:(UIPopoverPresentationController *)popoverPresentationController{
return YES;
}
//彈框消失時(shí)調(diào)用的方法
-(void)popoverPresentationControllerDidDismissPopover:(UIPopoverPresentationController *)popoverPresentationController{
NSLog(@"彈框已經(jīng)消失");
}
小視圖popviewcontroll
@interface PopViewController ()<UITableViewDelegate,UITableViewDataSource>{
//數(shù)組
UITableView *table;
//? ? 表格元素
NSArray *imgarr,*name;
}
-(void)viewdidload
table = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
//? ? 代理
table.delegate = self;
table.dataSource = self;
//? ? 加載
[self.view addSubview:table];
//? ? 數(shù)組內(nèi)容
imgarr = @[@"1",@"2",@"3"];
name = @[@"確認(rèn)添加",@"刪除添加",@"關(guān)閉"];
//分區(qū)行數(shù)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return imgarr.count;
}
//內(nèi)容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@""];
if (!cell) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@""];
}
cell.imageView.image = [UIImage imageNamed:imgarr[indexPath.row]];
cell.textLabel.text = name[indexPath.row];
return cell;
}
//點(diǎn)擊行相應(yīng)事件
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//? ? 判斷第幾行
if (indexPath.row == 0) {
//? ? ? ? 提示框
UIAlertController*alertController = [UIAlertController alertControllerWithTitle:@"確認(rèn)添加"message:@"操作以完成" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"確定" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:action];
[self presentViewController:alertController animated:YES completion:nil];
}
//如果等于第二行
else if (indexPath.row == 1){
//? ? ? ? 提示框
UIAlertController*alertController = [UIAlertController alertControllerWithTitle:@"刪除添加"message:@"操作以完成" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"確定" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:action];
[self presentViewController:alertController animated:YES completion:nil];
}
else if (indexPath.row == 2){
//? ? ? ? 提示框
UIAlertController*alertController = [UIAlertController alertControllerWithTitle:@"關(guān)閉"message:@"操作以完成" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"確定" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:action];
[self presentViewController:alertController animated:YES completion:nil];
}
}