Программно UIToolbar внизу - PullRequest
       2

Программно UIToolbar внизу

7 голосов
/ 28 ноября 2011

Я создаю UIToolbar программно, но проблема в том, что позиция этой панели инструментов вверх (позиция панели навигации).как я могу поставить его автоматически внизу?

Вот мой код:

    CGRect rect2 = CGRectMake(0, toolBar.frame.origin.y , self.view.frame.size.width , 0);
    toolBar = [[UIToolbar alloc]initWithFrame:rect2];
    toolBar.barStyle = UIBarStyleBlackTranslucent;
    [toolBar sizeToFit];
    [self.view addSubview:toolBar];
    [toolBar release];

, потому что мое приложение универсально, и у моего класса контроллера представления нет никакого файла пера, мне нужно определить его как для iPad, так и для iPhone, и я нене хочу использовать UIUserInterfaceIdiomPad.

Ответы [ 3 ]

11 голосов
/ 28 ноября 2011

Вы устанавливаете rect2 'y position в значение [toolbar frame].origin.y, которое на данный момент в коде равно либо nil, либо указывает на какой-то другой экземпляр панели инструментов, потому что тогда вы сразу после этого alloc и init новая панель инструментов.

Даже если панель инструментов была действительной, когда вы установили ее рамку, вы не можете использовать ее текущее значение y в качестве нового значения y, поскольку оно будет 0.

Вы должны расположить его относительно нижней части экрана, минус высота панели инструментов. Попробуйте вместо этого:

CGRect frame = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 44, [[UIScreen mainScreen] bounds].size.width, 44);
9 голосов
/ 28 апреля 2013

Создает выровненную нижнюю панель инструментов

CGRect frame, remain;
CGRectDivide(self.view.bounds, &frame, &remain, 44, CGRectMaxYEdge);
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:frame];
[toolbar setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin];
[self.view addSubview:toolbar];
0 голосов
/ 28 ноября 2011
CGRect rect2 = CGRectMake(0, toolBar.frame.origin.y , self.view.frame.size.width , 0);

[toolbar setFrame:rect2];

попробуйте это, я надеюсь, что это может помочь вам

...