有人可以在iphone / ipad开发中推广视图层次结构吗?
我想知道在屏幕上显示textBox所需的“root”元素是什么。
我也想知道如何在不使用NIB的情况下填充UITableViewController子类。
最小组件是:
Window
UiViewController
UIView
UITextBox
或
Window
UIView
UITextBox
@ Richard J. Ross III
我在哪里放myTableView?
Window
myTableView
myTableView是什么类型的?
答案 0 :(得分:1)
最小的组件是,但建议使用UIViewController
,因为它允许你用UITableViews
,UITabBars
等做一些很酷的东西.UITableViewController子类没有笔尖:
#import <UIKit/UIKit.h>
@interface MyController : UITableViewController
// custom methods here
@end
@implementation MyController
–(UITableViewCell *) tableView:(UITableView *) view cellForRowAtIndexPath:(NSIndexPath *) indexPath
{
return [[[UITableViewCell alloc] init] autorelease];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// initializes the table with 10 rows
return 10;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"the user selected row: %@", indexPath);
}
@end
然后,要使用该自定义控制器:
MyController *control = [[MyController alloc] initWithStyle:UITableViewStylePlain];
// now hook it up!
myTableView.dataSource = control;
myTableView.delegate = control;
[control release];
对不起我的语法错误,我在没有IDE的情况下写了这个(例如直接在stackoverflow上)。
答案 1 :(得分:1)
第一个猜测是正确的。 UIViewController管理一个视图属性,它是一个UIView。当某些事件发生时,控制器负责处理事情。如果用户旋转了他的设备,则viewController是听到它的对象。如果您已为此事件编码,则viewController将向UIView传递指令以进行旋转。 viewController中有一些特殊代码可以决定在视图出现,消失,加载,卸载等时要执行的操作。
UITableViewController管理一个tableView。在默认的XCode设置中,Table View DataSource和Delegate是UITableViewController子类。委托管理用户与表交互时发生的情况,选择行,滚动等。数据源包含填充表,页眉和页脚中行的信息。
如果要在tableViewCell中显示文本框,则需要UITableView对象和UITextField。您必须使dataSource为表提供UITextField作为行,并将其添加到UITableViewCell的视图中,该视图称为contentView。