【发布时间】:2023-03-03 09:22:19
【问题描述】:
我有一个视图控制器,其中有一个 tableView。当我设置它的 tableView 的框架时,它出现在屏幕上的不同位置,而不是我给它的框架。例如,给它一个 200 的 X 坐标和 128 的宽度会使整个东西离开屏幕。
这里是我实例化视图控制器的地方:
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];
}
有人知道为什么会这样吗?记录框架时,它准确地说明了我输入的内容,但这显然不是放在视图上的框架。作为另一项测试,我查看了完全相同的尺寸,这清楚地表明它们位于不同的位置。非常奇怪,感谢任何帮助。
谢谢
【问题讨论】:
-
我刚刚想到,这是否与我在没有笔尖时使用 viewdidload 而不是加载视图这一事实有关?
标签: iphone objective-c ios uitableview frame