使用高级界面对象和视图青岛滨海学院信息工程学院计算机教研室崔守良青岛滨海学院计算机教研室崔守良QQ:42788201本节教学内容:•如何使用分段控件(按钮栏)•通过开关输入布尔值的方式•如何在应用程序中包含Web内容•使用可滚动的视图克服屏幕的局限性青岛滨海学院计算机教研室崔守良QQ:427882011、开关UISwitch,类似于传统的物理开关,使用其ValueChanged事件来检测开关切换,通过属性on或实例方法isOn来获取当前值。2、分段控件UISegmentedControl,监视ValueChanged事件,通过selectedSegmentIndex判断当前选择的按钮,返回当前选定按钮的编号,实例方法titleForSegmentAtIndex来获得每个分段的标题3、Web视图UIView,可以看作是没有边框的Safari窗口,使用NSURL、NSURLRequest和requestWithURL加载远程内容青岛滨海学院计算机教研室崔守良QQ:42788201项目一实现概述创建一个应用程序,显示从网站FloraPhotographs.com获取的花朵照片和花朵信息。让用户轻按分段控件中的一种花朵颜色,然后从网站上取回一朵这样颜色的花朵,并在Web视图中显示它。使用开关来显示和隐藏另一个Web视图,该视图包含有关该花朵的详细信息。通过按钮让用户能够从网站取回另一张当前选定颜色的花朵照片。青岛滨海学院计算机教研室崔守良QQ:42788201青岛滨海学院计算机教研室崔守良QQ:427882011、创建SingleViewApplication项目,名称为flowerView.2、设计界面选择MainStoryboard.storyboard在IB编辑器中打开它。添加分段控件对象UISegmentedControl,设置其Segments属性为4,分别设置其title属性为Red、Blue、Yello和Green。添加开关对象UISwitch,将其默认状态State属性改为OFF青岛滨海学院计算机教研室崔守良QQ:42788201添加一个Web视图UIWebView,命名为flowerView,用来显示图像,选中ScalesPagetoFit属性。再添加一个Web视图UIWebView,命名为flowerDetailView,将其放在flowerView的上面,设置其alpha的值为0.65添加一个按钮UIButton,让用户随时手工触发获取图像的方法getFlower青岛滨海学院计算机教研室崔守良QQ:427882013、创建并连接输出口和操作用于指定颜色的分段控件:colorChoice用于显示花朵本身的Web视图:flowerView显示花朵详细信息的Web视图:flowerDetailView在用户单击获取图像按钮时获取花朵操作:getFlower,将UISegmentedControl的Valuechanged事件连接到getFlower方法。根据开关的设置显示/隐藏花朵详细信息:toggleFlowerDetail青岛滨海学院计算机教研室崔守良QQ:427882014、实现应用程序逻辑•显示隐藏详细信息Web视图-(IBAction)toggleFlowerDetail:(id)sender{self.flowerDetailView.hidden=![senderisOn];}•加载并显示花朵图像和详细信息从分段控件获取选定的颜色生成一个会话ID的随机数,让FloraPhotograghos.com网站能够跟踪我们的请求请求URL=color&session=sessionID返回一张花朵照片请求URL=sessionID返回上一步请求花朵照片的详细信息青岛滨海学院计算机教研室崔守良QQ:42788201-(IBAction)getFlower:(id)sender{NSString*color=[self.colorChoicetitleForSegmentAtIndex:self.colorChoice.selectedSegmentIndex];intsessionID=random()%50000;NSString*imageURLString=[[NSStringalloc]initWithFormat:@=%@&session=%d,color,sessionID];青岛滨海学院计算机教研室崔守良QQ:42788201NSString*detailURLString=[[NSStringalloc]initWithFormat:@=%d”,sessionID];NSURL*imageURL=[[NSURLalloc]initWithString:imageURLString];NSURL*detailURL=[[NSURLalloc]initWithString:detailURLString];[self.flowerViewloadRequest:[NSURLRequestrequestWithURL:imageURL]];[self.flowerDetailViewloadRequest:[NSURLRequestrequestWithURL:detailURL]];self.flowerDetailView.backgroundColor=[UIColorclearColor];}青岛滨海学院计算机教研室崔守良QQ:427882015、修复应用程序加载时的界面问题应用程序启动时,两个Web视图都是空的,且显示了详细信息视图,虽然开关被设置为OFF。可在应用程序启动后立刻加载一幅图像,并将flowerDetailView.hidden设置为YES。如-(void)viewDidLoad{self.flowerDetailView.hidden=YES;[selfgetFlower:nil];[superviewDidLoad];}青岛滨海学院计算机教研室崔守良QQ:42788201使用可滚动视图UIScrollView滚动视图,可在添加控件和界面元素时不受设备屏幕边界的限制。将对象加入可滚动视图有两种方案:一个选择加入的对象,使用箭头键将对象移到视图可视区域外面的大概位置;二是选择加入的对象,使用SizeInspector手工设置其X和Y坐标。为给可滚动视图添加滚动功能,需要将属性contentSize设置为一个CGSize值。如:青岛滨海学院计算机教研室崔守良QQ:42788201-(void)viewDidLoad{-self.theScroller.contentSize=CGSizeMake(280.0,600.0);[superviewDidLoad];}青岛滨海学院计算机教研室崔守良QQ:42788201小结:学习了如何使用开关和分段控件让用户能够在应用程序中通过触摸来做出决策。探索了如何使用WEB视图在项目中显示WEB内容,以及如何调整它使其适合iOS屏幕。