【问题标题】:Setting UITableView's Frame Does Not Work Correctly设置 UITableView 的框架不能正常工作
【发布时间】: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


【解决方案1】:

你的

[self.view setFrame:frame];

(100,47) 绝对坐标

|                |
|                |
|   self.view    |
|                |
|                |

你的 staticTable 留下零坐标。

staticTable = [[UITableView alloc] initWithFrame:CGRectMake(0,0,128,150) style:UITableViewStylePlain];

因为

(0,0) self.view 的相对坐标。

(100,47) superView 的绝对坐标

self.view
    |[                ]|
    |[                ]|
    |[staticTableView ]|
    |[                ]|
    |[                ]|

如果你设置frame等于下图。

staticTable = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain];

self.view
 |      [      |         ]
 |      [      |         ]
 |      [static|TableView]
 |      [      |         ]
 |      [      |         ]

【讨论】:

  • 谢谢,这是一个很好的提醒,因为我忘记了一些简单的事情。
【解决方案2】:

myPopover 的宽度为 128,高度为 150

那么如何添加 x 坐标为 200 的表格视图,它必须低于 128 才能显示表格。 frame 是关于 subView 的坐标,但不是屏幕的总视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2010-10-19
    • 1970-01-01
    相关资源
    最近更新 更多