【问题标题】:set explicit size of UITableViewController programmatically以编程方式设置 UITableViewController 的显式大小
【发布时间】:2012-05-10 16:13:39
【问题描述】:

我希望能够根据内容设置我的 tableview 的大小。我认为我可以在 prepareForSegue 中执行此操作,因为如果在我的 rootViewController 中按下按钮,我的 tableview 会显示为弹出框。所以我正在尝试设置显式大小,就像我可以在情节提要中做的那样,但我想以编程方式进行。我试过self.tableview.frame.size,但它得到一个错误,说它不可分配?

if([[segue identifier] isEqualToString:@"tagView1"])
{
    TagTableViewController *tvc = [segue destinationViewController];
    tvc.tableView.frame = CGRectMake(tvc.tableView.frame.origin.x, tvc.tableView.frame.origin.y , 100, 100);
}

【问题讨论】:

    标签: objective-c ios xcode frame


    【解决方案1】:

    在TVC的viewDidLoad

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        self.clearsSelectionOnViewWillAppear = NO;
        // Change to what you need
        self.contentSizeForViewInPopover = CGSizeMake(150.0, 250.0);
    }
    

    【讨论】:

    • 我的问题是太晚了。我在我的 viewdidload 中创建了一个 nsnotification 观察者,直到调用了那个方法,我才知道 popoverview 应该是什么大小。
    【解决方案2】:

    你必须设置整个frame。如果您希望origin 保持不变,请执行以下操作:

    self.tableview.frame = CGRectMake(self.tableview.frame.origin.x, self.tableview.frame.origin.y, __width__, __height__);
    

    【讨论】:

      【解决方案3】:

      尝试在 vieDidAppear 中设置表格的大小: 在 TVC 中。

      喜欢:

      -(void)viewDidAppear:(BOOL)动画{

      [super viewDidAppear:animated];
      
      [self.tableView setFrame:CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y, self.tableView.frame.size.width, self.tableView.frame.size.height - 50)];
      

      }

      【讨论】:

        【解决方案4】:

        试试self.tableview.frame = (CGRect){self.tableview.frame.origin, newSize};

        self.tableview.frame = CGRectMake(self.tableview.frame.origin.x, self.tableview.frame.origin.y, newSize.width, newSize.height);一样,只是更短。

        您不应该直接设置大小,因为在这种情况下不会通知观察视图框架的其他对象。

        【讨论】:

        • 我试过了 - 正如您在上面的代码中看到的那样,但它仍然无法正常工作?
        猜你喜欢
        • 2012-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        • 2011-12-24
        • 2015-01-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多