Iphone 设置UITableView';s框架工作不正常
我有一个视图控制器,其中有一个tableView。当我设置它的tableView的框架时,它会出现在屏幕上与我给它的框架不同的位置。例如,给它一个X坐标为200,宽度为128,这会使整个屏幕消失 下面是我实例化视图控制器的地方:Iphone 设置UITableView';s框架工作不正常,iphone,objective-c,ios,uitableview,frame,Iphone,Objective C,Ios,Uitableview,Frame,我有一个视图控制器,其中有一个tableView。当我设置它的tableView的框架时,它会出现在屏幕上与我给它的框架不同的位置。例如,给它一个X坐标为200,宽度为128,这会使整个屏幕消失 下面是我实例化视图控制器的地方: myPopover = [[PopupVC alloc] initWithFrame:CGRectMake(100, 47, 128, 150)]; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBu
myPopover = [[PopupVC alloc] initWithFrame:CGRectMake(100, 47, 128, 150)];
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
}
- (id)initWithFrame:(CGRect)_frame
{
self = [self initWithNibName:nil bundle:nil];
if (self)
{
frame = _frame;
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self.view setFrame:frame];
staticTable = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain];
[self.view addSubview:staticTable];
以及视图控制器的初始代码:
myPopover = [[PopupVC alloc] initWithFrame:CGRectMake(100, 47, 128, 150)];
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
}
- (id)initWithFrame:(CGRect)_frame
{
self = [self initWithNibName:nil bundle:nil];
if (self)
{
frame = _frame;
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self.view setFrame:frame];
staticTable = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain];
[self.view addSubview:staticTable];
}
有人知道为什么会这样吗?当记录帧时,它准确地显示了我输入的内容,但这显然不是放在视图上的帧。作为另一项测试,我观察了完全相同的尺寸,清楚地表明它们在不同的地方。非常奇怪,感谢您的帮助
谢谢,myPopover的宽度是128,高度是150 因此,如何添加带有200的x cordinate的表视图,它必须低于128才能显示表。帧是关于子视图的坐标,而不是屏幕的总视图。 [self.view setFrame:frame] (100,47)绝对坐标
| |
| |
| self.view |
| |
| |
你可以留下零个坐标
staticTable = [[UITableView alloc] initWithFrame:CGRectMake(0,0,128,150) style:UITableViewStylePlain];
因为
(0,0)self.view的相对坐标
(100,47)superView的绝对坐标
self.view
|[ ]|
|[ ]|
|[staticTableView ]|
|[ ]|
|[ ]|
如果设置帧,则帧等于下图
staticTable = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain];
我只是想,这可能与我在没有笔尖的情况下使用viewdidload而不是load view有关吗?谢谢,这是一个很好的提醒,提醒我一些我忘记的简单事情。