加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

最简单实现侧边栏的方法----UISplitViewController

发布时间:2020-12-14 02:10:59 所属栏目:百科 来源:网络整理
导读:Demo下载地址 1.创建一个新的工程,在storyboard里面删除已有的viewController,拖入一个UISplitviewControloler. 2.删除Navigation view,建立splitviewController 与 TableViewControl之间的联系,选择 master viewController, 3.将tableview的content修改成

Demo下载地址

1.创建一个新的工程,在storyboard里面删除已有的viewController,拖入一个UISplitviewControloler.



2.删除Navigation view,建立splitviewController 与 TableViewControl之间的联系,选择 master viewController,



3.将tableview的content修改成static,添加多个cell



4.添加多个UIViewController,并和cell建立关联。



5.实现UISplitViewController的子类,指定侧边栏的宽度,取消手势事件:

override func viewDidLoad() {

self.preferredPrimaryColumnWidthFraction =0.2

self.presentsWithGesture =false;

}


将storyboard中的splitViewController的关联类修改成实现的UISpliteViewController的子类



6.给添加的detail ViewController 添加实现类,

class ViewController: UIViewController {


overridefunc viewDidLoad() {

super.viewDidLoad()

//添加menu button

var btnShow = UIButton(frame: CGRectMake(10,20,100,30));

btnShow.setTitle("Menu",forState:UIControlState.Normal);

btnShow.addTarget(self,action:"showMenu:",forControlEvents: UIControlEvents.TouchUpInside);

btnShow.backgroundColor = UIColor.grayColor();

self.view.addSubview(btnShow);

}

// button event

func showMenu(sender:UIButton){

//animation when change sideBar

UIView.animateWithDuration(0.5,animations: {() in

if self.splitViewController!.preferredDisplayMode == UISplitViewControllerDisplayMode.AllVisible{

//hide sideBar

self.splitViewController!.preferredDisplayMode = UISplitViewControllerDisplayMode.PrimaryHidden;

}else{

//show sideBar

self.splitViewController!.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible;

}


})

}

overridefunc touchesEnded(touches:Set<NSObject>,withEvent event:UIEvent) {

//hide sideBar when tap detailViewController

UIView.animateWithDuration(0.5,animations: {() in

if self.splitViewController!.preferredDisplayMode == UISplitViewControllerDisplayMode.AllVisible{

self.splitViewController!.preferredDisplayMode = UISplitViewControllerDisplayMode.PrimaryHidden;

}

})

}

}





OK,简单的侧边栏实现了:







可以根据实际需要设置侧边来是ovelay 还是sidebyside:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读