箭头、标识、创建类与其关联


控制第一部分有3行,
第二部分10行。
第二部分10行。



选中TV
“group”,它默认为“Plain”。



Separater设置:
默认是有线分割。

可以给线加颜色。

在TV中显示一些内容。
情况1:
情况1:


TableHeaderView 会随着滚动。
如果上面要求不动显示 是个ViewController。
先拖拽1个VIEW 在控件框的下方。


header
cell
footer
cell
footer

使用到了TextView.

@property (weak, nonatomic) IBOutlet UITextView *myTextView;
[super viewDidLoad];
self.myTextView.text = @"个人简介";
}


选中Table View
设置Section

很难选到,一般点击一下“Root View Controller”

应用场景:页面一成不变。界面不会改变。

如果是静态Cell
需要把创建TableViewController时生成的模板代码,
两个 协议方法 “分区个数” 、“行数” 代码 注释掉。
Cell不够,就往里拖:
需要把创建TableViewController时生成的模板代码,
两个 协议方法 “分区个数” 、“行数” 代码 注释掉。

Accessory Type:
选中该行

1、静态Cell 在Tableview中可以上下拖动
2、当你未设置静态Cell“分区”,默认一个分区。在一个分区内做好设置后。修改分区个数,将创建多个和第一个设置一样的 Cell个数相同的分区。
Xib。
目前学习过的创建页面的方式有:
1、通过类创建
2、通过Storyboard拖拽
现在再学习一种,通过XIB生成页面。
在SB之前,是纯代码+XIB。
一个页面对应一个XIB。
后来SB出现,XIB整合到了SB中。
SB连线方式使得 页面关系清晰。
一个页面对应一个XIB。
后来SB出现,XIB整合到了SB中。
大项目,几个人一起开发,用SB麻烦:
需要同时访问同一个文件。
一般都是纯代码,或纯代码+Xib。
1、纯代码。
一般都是纯代码,或纯代码+Xib。
2、Xib。
正确的方式是,适合用什么你就用什么。
Xib和SB都是拖拽。
动态偏多,界面变化较多,不是一成不变。用代码控制。
静态,改变少。用拖拽。
SB删。

Main.interface 中的Main 去掉。
在AppDelegate.m中创建window
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window =
[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
ViewController *vc = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
//
Override point for customization after application launch.
return YES;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
ViewController *vc = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
return YES;
}
第一个页面是ViewController,直接把它的XIB当做Storyboard来用。
关联什么的都是一样的,一样跳转到TableViewController。
创建类的时候,勾选生成XIB文件。


#import "AppDelegate.h"
#import "TableViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
TableViewController *vc = [[TableViewController alloc]initWithNibName:@"TableViewController" bundle:nil];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
return YES;
#import "TableViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
TableViewController *vc = [[TableViewController alloc]initWithNibName:@"TableViewController" bundle:nil];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
return YES;
}
XIB编译完之后变长NIB,所以写的NibName。
一般XIB的名字和其类名是一样。
必须一致。
删除文件时:

中间是引用删除,不删除源文件。
第三个 删除源文件。
自定义控件。
继承现有的控件,再修改它的功能。
一个控件是其他几个控件的功能的组合。


XIB表示“页面”才让勾选。
老师笔记:
1、通过纯代码自定义控件
2、通过纯代码+XIB自定义控件。
1、通过纯代码自定义控件
2、通过纯代码+XIB自定义控件。

命名和UIView控件名一样。

XIB拖拽一个VIEW
改大小:

去掉状态栏 “电池”

菊花,改大小,

上来就旋转:

改View背景颜色

改Lable字体颜色白
,xib文件关联类代码。因为控件中的内容可能涉及到修改,所以关联到类。

自定义控件内容(如Label)不允许直接关联到.m中,要求关联到.h中。
自定义控件关联到代码 的.h中。
自定义控件关联到代码 的.h中。
在ViewController中创建。
1、

XIB可以自定义多个控件。
多个控件并列关系。

创建的时候的返回值就是一个数组。

- (void)viewDidLoad
{
[super viewDidLoad];
LoadingView *lv = [[[NSBundle mainBundle]loadNibNamed:@"LoadingView" owner:self options:nil]lastObject];
lv.center = self.view.center;
[self.view addSubview:lv];
[super viewDidLoad];
LoadingView *lv = [[[NSBundle mainBundle]loadNibNamed:@"LoadingView" owner:self options:nil]lastObject];
lv.center = self.view.center;
[self.view addSubview:lv];
}
改Frame。
第三方框架:不是自己的,不是苹果的。