iOS Programming 学习笔记 - 01 View and ViewController
来源:互联网 发布:测颜值软件 编辑:程序博客网 时间:2024/06/12 00:06
1. UIView
NIB文件的名称需要和ViewController的文件名一致,这样在初始化该view controller时,使用如下方法即可,否则需要制定NIB文件和Bundle:
BNRReminderViewController *rvc = [[BNRReminderViewController alloc] init];否则需要显示指定:
// This will get a pointer to an object that represents the app bundle NSBundle *appBundle = [NSBundle mainBundle]; // Look in the appBundle for the file BNRReminderViewcontroller.xib BNRReminderViewController *rvc = [[BNRReminderViewController alloc] initWithNibName:@"BNRReminderViewController" bundle:appBundle];
2. 注册LocalNotification
#ifdef __IPHONE_8_0 //这里主要是针对iOS 8.0,相应的8.1,8.2等版本各程序员可自行发挥,如果苹果以后推出更高版本还不会使用这个注册方式就不得而知了……if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) { UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings];} else { UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound; [[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];}#elseUIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;[[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];#endif
3. UIViewController
下面是和ViewControlle相关的一些常用的方法:
application:didFinishLaunchingWithOptions: 初始化和设置root view controller的地方,应用程序启动时被调用,直到应用程序结束,这个方法只会被调用一次。
initWithNibName:bundle: 用于初始化ViewController。
loadView: 重载这个函数可以通过编程的方式为view controller创建view。
viewDidLoad: 重载这个函数来对view进行配置,这个函数在controller的view被创建时被调用。
viewWillAppear: 每当view要被显示到屏幕上时被调用。
在view controller的loadView方法中,加载对应的view
- (void)loadView{ // Create a view BNRHypnosisView *backgroundView = [[BNRHypnosisView alloc] init]; // Set it as *the* view of this view controller self.view = backgroundView;}
4. UITabBarController
分四步,在appDelegate的didFinishLaunchingWithOptions方法中创建3个view controller;创建tabbar controller;将view controller传递给tabbar controller;将tabbar controller设置为rootViewController
BNRHypnosisViewController *hvc = [[BNRHypnosisViewController alloc] init]; BNRReminderViewController *rvc = [[BNRReminderViewController alloc] init]; BNRQuizViewController *qvc = [[BNRQuizViewController alloc] init]; UITabBarController *tabBarcontroller = [[UITabBarController alloc] init]; tabBarcontroller.viewControllers = @[hvc, rvc, qvc]; self.window.rootViewController = tabBarcontroller;在每个viewController中重载initWithNibName方法,设置tab item的名称和图片
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Set the tab bar item's title self.tabBarItem.title = @"Hpnosis"; // Create a UIImage from a file // This will use Hypno@2x.png on retina display devices UIImage *i = [UIImage imageNamed:@"Hypno"]; // Put that image on the tab bar item self.tabBarItem.image = i; } return self;}程序执行效果如下:
5. UIScrollView
- 首先创建绘图区CGRect screenRect,大小于屏幕大小相等,然后创建一个宽度是屏幕大小两倍的bigRect。
- 接下来创建一个UIScrollView,大小为screenRect,将其加入window的sub view数组中。
- 创建一个自定view - hypnosis,大小为screenRect,将其加入scroll view的sub view数组中。
- 再创建第二个自定义view - hypnosis,大小为screen大小,但是x坐标的起始为前一个view的宽度,将其加入scroll view的sub view数组中。
- 使能paging功能。
- 设置scroll view的contentSize为bigRect。
// Create CGRects for frames CGRect screenRect = self.window.bounds; CGRect bigRect = screenRect; bigRect.size.width *= 2.0; // Create a screen-sized scroll view and add it to the window UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:screenRect]; [self.window addSubview:scrollView]; // Create a screen-sized hypnosis view and add it to the scroll view BNRHypnosisView *hypnosisView = [[BNRHypnosisView alloc] initWithFrame:screenRect]; [scrollView addSubview:hypnosisView]; // Add a second screen-sized hypnosis view just off screen to the right screenRect.origin.x += screenRect.size.width; BNRHypnosisView *anotherView = [[BNRHypnosisView alloc] initWithFrame:screenRect]; [scrollView addSubview:anotherView]; scrollView.pagingEnabled = YES; // Tell the scroll view how big its content area is scrollView.contentSize = bigRect.size;程序执行效果如下,可以看到屏幕下发有一个滚动条,横向拖动滚动条可以在2个view之间进行切换。
0 0
- iOS Programming 学习笔记 - 01 View and ViewController
- View Programming Guide for IOS:View and Window Architecture笔记
- iOS学习笔记-----ViewController
- iOS UI学习 自定义View和ViewController
- View Programming Guide for iOS 学习笔记_0
- View Programming Guide for iOS 学习笔记_1
- View Programming Guide for iOS 学习笔记_2
- View Programming Guide for iOS 学习笔记_3
- iOS Programming 学习笔记 - 02 Delegate and UITextField
- IOS学习笔记——ViewController生命周期
- Scroll View Programming Guide for iOS 笔记
- 《View Controller Programming Guide for iOS》笔记
- 《View Programming Guide for iOS》笔记
- Scroll View Programming Guide for iOS 笔记
- 《View Controller Programming Guide for iOS》笔记
- 《View Controller Programming Guide for iOS》笔记
- 《View Programming Guide for iOS》笔记
- View Controller Programming Guid for iOS 笔记
- MySQL执行外部sql脚本文件的命令
- 对不起,我只要爱马仕人生
- <jsp:include>和<%@include%>的区别
- swift:打造你自己的折线图
- 关闭SELinux和防火墙
- iOS Programming 学习笔记 - 01 View and ViewController
- Hackintosh(黑苹果来袭)
- Linux 系统时间 修改
- 验证码之 jsp页面显示与img里的显示内容同步问题
- 苹果,百度Map定位使用与总结
- javascript动态创建表格
- PHP页面跳转几种实现方法
- 自定义打开协议
- typeof 原来也不复杂