一般一个app进入一个新的页面,或者有新的功能更新的时候都会有一个新手引导来帮助大家快速了解新功能,那么我最近就集成了这样一个功能,我们先来看一下效果图吧: ![10.gif](/static/images/essay/11.gif) >这个库叫做XSportLight,XSportLight有两个数组,一个数组内包括所有的文字说明,一个数组内则包括所有的聚光灯的位置和大小,位置坐标表示聚光灯的中心位置。 我分别用OC和swift来描述了如何使用XSportLight(XSportLight是用OC写的,使用swift的同学需要建立桥接文件)。 - OC代码 ``` XSportLight *SportLight = [[XSportLight alloc]init]; SportLight.messageArray = @[ @"这是《简书》", @"点这里撰写文章", @"搜索文章", @"这会是StrongX的下一节课内容" ]; SportLight.rectArray = @[ [NSValue valueWithCGRect:CGRectMake(0,0,0,0)], [NSValue valueWithCGRect:CGRectMake(SCREEN_WIDTH/2, SCREEN_HEIGHT - 20, 50, 50)], [NSValue valueWithCGRect:CGRectMake(SCREEN_WIDTH - 20, 42, 50, 50)], [NSValue valueWithCGRect:CGRectMake(0,0,0,0)] ]; SportLight.delegate = self; [self presentViewController:SportLight animated:false completion:^{ }]; ``` - swift代码 ``` var firstAppear = NSUserDefaults.standardUserDefaults().objectForKey("firstAppear") as? Bool if firstAppear != true { NSUserDefaults.standardUserDefaults().setObject(true, forKey: "firstAppear") var sportlight = XSportLight() sportlight.messageArray = [ "这是《简书》", "点击这里撰写文章", "搜索文章", "这将会是strongX的下一节课的内容", ] sportlight.rectArray = [ NSValue(CGRect:CGRectMake(0, 0, 0, 0)), NSValue(CGRect:CGRectMake(SCREEN_WIDTH/2, SCREEN_HEIGHT - 20, 50, 50)), NSValue(CGRect:CGRectMake(SCREEN_WIDTH - 20, 42, 50, 50)), NSValue(CGRect:CGRectMake(SCREEN_WIDTH/2, SCREEN_HEIGHT - 20, 0, 0)), ] sportlight.delegate = self self.presentViewController(sportlight, animated: false, completion: { () -> Void in }) } ``` > XSportLight还包括一个delegate 这个协议里有一个方法叫做: - (void)XSportLightClicked:(NSInteger)index; 这个方法在每次点击动作是调用,参数就是点击的index。 # 欢迎加入iOS交流群537774852 我已经把这个库放在github上,大家可以自行下载,同时欢迎大家贡献代码(我写他的时候并没有太仔细,欢迎之处问题以及修正)。 github地址:https://github.com/StrongX/XSportLight