由于UICatalog工程比较大,所以我分几篇来描述。
如果有关代码前面已经分析过,这里就不再重复了。
4.ControlsViewController类
这个类的.h文件没有什么特殊的。
在.m文件中,注意下面的定义:
#define kSliderHeight7.0
#define kProgressIndicatorSize40.0
#define kUIProgressBarWidth160.0
#define kUIProgressBarHeight24.0
#define kViewTag1
这样的定义是必须,在编程规范中,原则上是不允许硬编码的,所有的常量都应该是使用宏定义的方式。如果是多个文件中都使用的常量,应该使用一个专门的头文件定义,如果只是在一个类中使用,就定义在这个类的.m文件中。
@interface ControlsViewController (forwardDeclarations)
- (void)tintAction:(id)sender;
@end
这里使用catalog技术对类进行扩展,这里不对catalog技术进行讲述,如果有可能,我会专门写一个Objective-C的教程。
值得一提的是,上面的方式看似定义了类的一个私有的函数,其实不然,由于Objective-C的运行期特性,这个语言的类是没有私有函数的概念的。如果在外面调用这个函数,编译期会给出一个警告,但是在运行的时候,程序不会crash。
4.1函数viewDidLoad
if ([UIStepperclass])
{
[self.dataSourceArrayaddObject:[NSDictionarydictionaryWithObjectsAndKeys:
@"UIStepper",kSectionTitleKey,
@"Stepper 1 to 10",kLabelKey,
@"ControlsViewController.m:\r-(UIStepper *)stepper",kSourceKey,
self.stepper,kViewKey,
nil]];
}
这个代码是中的[UIStepperclass]是判断是否有UIStepper这个类。由于UIStepper是iOS5.0中引入的,所以这里必须进行判断一下,注意,即使如此,这个工程在5.0以前的模拟器中也是不能运行的。
// provide tint coloring only if its available
if ([sliderCtl
respondsToSelector:@selector(minimumTrackTintColor)])
{
// add tint bar button
UIBarButtonItem *tintButton = [[UIBarButtonItemalloc]initWithTitle:@"Tinted"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(tintAction:)];
self.navigationItem.rightBarButtonItem
= tintButton;
[tintButton
release];
}
这里的[sliderCtlrespondsToSelector:@selector(minimumTrackTintColor)]是判断类UISlider是否有函数minimumTrackTintColor,通用,这个函数也是5.0中引入的。
代码
CGRect frame =CGRectMake(198.0, 12.0, 94.0, 27.0);
switchCtl = [[UISwitchalloc]initWithFrame:frame];
[switchCtladdTarget:selfaction:@selector(switchAction:)forControlEvents:UIControlEventValueChanged];
// in case the parent view draws with a custom color or gradient, use a transparent color
switchCtl.backgroundColor = [UIColorclearColor];
[switchCtlsetAccessibilityLabel:NSLocalizedString(@"StandardSwitch",@"")];
switchCtl.tag =kViewTag;
是生成一个UISwitch的实例,函数switchAction:是这个实例的在事件UIControlEventValueChanged的响应函数。
CGRect frame =CGRectMake(174.0, 12.0, 120.0,kSliderHeight);
sliderCtl = [[UISlideralloc]initWithFrame:frame];
[sliderCtladdTarget:selfaction:@selector(sliderAction:)forControlEvents:UIControlEventValueChanged];
// in case the parent view draws with a custom color or gradient, use a transparent color
sliderCtl.backgroundColor = [UIColorclearColor];
sliderCtl.minimumValue = 0.0;
sliderCtl.maximumValue = 100.0;
sliderCtl.continuous =YES;
sliderCtl.value = 50.0;
// Add an accessibility label that describes the slider.
[sliderCtlsetAccessibilityLabel:NSLocalizedString(@"StandardSlider",@"")];
sliderCtl.tag =kViewTag;
是生成一个UISlider的实例,
下面的代码就不分析了,因为都是比较简单的。
这里需要提醒的是,在生成的UIActivityIndicatorView实例后,必须调用函数startAnimating,不然这个指示控件,是不会开始转动的。
5.TextFieldController类
这个类里面基本上没有什么需要特别解释的,
需要提醒的是在函数textFieldLeftView中,
UIImageView *image = [[UIImageViewalloc]
initWithImage:[UIImageimageNamed:@"segment_check.png"]];
textFieldLeftView.leftView = image;
[image
release];
textFieldLeftView.leftViewMode =UITextFieldViewModeAlways;
为text field加入一个位于左边的view,是显示一个图片,当然也可以显示任何其他的图片。
分享到:
相关推荐
Cisco 思科 1921 路由器 IOS c1900-universalk9-mz.SPA.158-3.M4.rar 官网下载
思科 cisco ios 镜像 c7200-advipservicesk9-mz.124-2.T.bin 文件由多位CCIE水平人员测试使用后拷贝,dy下可用.
思科 cisco ios 镜像 c7200-is-mz.124-19b.bin 文件由多位CCIE水平人员测试使用后拷贝,dy下可用.
思科 cisco ios 镜像 unzip-c7200-advsecurityk9-mz.124-11.T.bin 文件由多位CCIE水平人员测试使用后拷贝,dy下可用
vuforia-sdk-ios-6-5-25.zip vuforia sdk for iOS Use the Vuforia SDK to build Android, iOS, and UWP(win10+) applications for mobile devices and digital eyewear. Apps can be built with Android Studio, ...
Cisco 3560 IOS c3560-ipservicesk9-tar.150-2.SE4.tar
一步一步学习iOS5编程-项目源代码
思科 cisco 镜像 ios c2600-adventerprisek9-mz.124-18.bin 文件由多位CCIE水平人员测试使用后拷贝,dy下可用
2008年推出 CISCO2950较新IOS映像:c2950-i6k2l2q4-mz.121-22.EA12
Cisco 思科 1921 路由器 IOS c1900-universalk9-mz.SPA.157-3.M7.rar 官网下载
GNS3模拟器IOS:c7200-is-mz.122-19
网易airtest for mac必备agent, iOS-Tagent 其实就是 WebDriverAgent 仔细看,会发现iOS-Tagent会比WebDriverAgent简略得多。 iOS-Tagent其实就是WDA的优化版本。 git clone ...
做交换的vtp实验用的ios。c2691-advsecurityk9-mz.124-11.T2.bin 可以网上搜索一下它的使用。
cisco 思科 3602i 瘦AP IOS ap3g2-k9w8-tar.153-3.JF12i.tar (最新)
cisco8141ios镜像文件c1841-spservicesk9-mz.124-8.bin
一步一步学习 iOS 5编程-SimpleTable 项目,源代码实现到第九部分。
cisco 2960 IOS c2960-lanbasek9-mz.122-55.SE12.bin
cisco交换机IOS unzip-c3725-adventerprisek9-mz.124-15.T5.bin,比较大,这里是part1
2016最新思科IOS下载[交换机3750x 3750e]c3750e-universalk9-mz.150-2.SE9.bin
Cisco 1602i 胖IOS,固件版本(ap1g2-k9w7-tar.153-3.JF5).tar