2016-07-29 2 views
0

Мне нужно создать «старый» стиль UIView без AutoLayout и ограничений. На мой взгляд, есть табличный вид, который вычисляет его размер с помощью автоматического макета и другого представления. К сожалению, кажется, что сам вид не обеспечивает необходимую мне высоту. Это, как я создаю UIView:Увеличьте высоту UIView без автоматического макета

// View 1 - Calendar View 

FSCalendar *calendar = [[FSCalendar alloc] initWithFrame:CGRectMake(0, 0, view.frame.size.width, height)]; 
calendar.dataSource = self; 
calendar.delegate = self; 

calendar.scopeGesture.enabled = YES; 

[view addSubview:calendar]; 

// View 2 - TableView 

_myTableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 200, SCREEN_WIDTH, SCREEN_HEIGHT) style:UITableViewStylePlain]; 
    self.myTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight| UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; 
    self.myTableView.tableFooterView = [UIView new]; 
    self.myTableView.backgroundColor = self.view.backgroundColor; 
    [self.myTableView setShowsHorizontalScrollIndicator:NO]; 
    [self.myTableView setShowsVerticalScrollIndicator:NO]; 
    // self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
    self.myTableView.estimatedRowHeight = 85.0; 
    self.myTableView.rowHeight = UITableViewAutomaticDimension; 
    _myTableView.bounces = NO; 
    self.myTableView.dataSource = self; 
    self.myTableView.delegate = self; 
    self.myTableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag; 
    if (SYSTEM_VERSION_GREATER_THAN(@"8.4") && (IS_IPAD)){ 
     self.myTableView.cellLayoutMarginsFollowReadableWidth = NO; 
    } 

    [self.view addSubview:_myTableView]; 

Я полагаю, проблема может быть здесь:

_myTableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 200, SCREEN_WIDTH, SCREEN_HEIGHT) style:UITableViewStylePlain]; 

Потому что, я не хватает около 200 точек пространства (у позиции, которые я хочу программно переместить вид таблицы вниз).

Есть ли способ подгонять высоту экрана к моим представлениям?

+0

В каком методе вы пишете этот код? –

+0

@JayeshThanki в просмотре действительно загрузился –

+0

Я не понял, почему вы берете 200 как y origin в «_myTableView = [[UITableView alloc] initWithFrame: CGRectMake (0, 200, SCREEN_WIDTH, SCREEN_HEIGHT) style: UITableViewStylePlain]; "? либо от 200 до 0, либо от SCREEN_HEIGHT до (SCREEN_HEIGHT-200). Надеюсь это поможет. –

ответ

1

Если этот вид находится внутри другого вида, его следует изменить в layoutSubviews.

- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 

    // your code here... 
} 

Если внутри вида в ViewController перетрахает изменение размеров в viewDidLayoutSubviews.

- (void)viewDidLayoutSubviews 
{ 
    [super viewDidLayoutSubviews]; 

    // your code here... 
} 
+1

спасибо, что сделаете. –

+0

наверняка вы бы это сделали с Swift, ребята – Fattie

+0

На самом деле не имеет значения: автоопределение может использоваться или avioded в obj-c или swift –

Смежные вопросы