2014-10-27 2 views
0

Я хочу, чтобы панель инструментов автоматически отображалась в нижней части экрана, и я хочу, чтобы она изменяла ширину, чтобы она настраивалась с iPhone на iPad. Приведенный ниже код приводит к статическому UIToolbar, который остается в том же положении. Как я могу сделать панель инструментов внизу, и как настроить ширину автоматически в соответствии с размером экрана?Как авторизовать UIToolBar?

- (UIView*)commomOverlay 
{ 


UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0,0,400,430)]; 


CGRect rect = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 44, [[UIScreen mainScreen] bounds].size.width, 44); /* 
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{ 
    rect = CGRectMake(0,0,768,1004); 
} 
UIImageView *FrameImg = [[UIImageView alloc] initWithFrame:rect]; 
[FrameImg setImage:[UIImage imageNamed:@"newGraphicOverlay.png"]]; 
FrameImg.userInteractionEnabled = YES; 
[view addSubview:FrameImg]; 
[FrameImg release];*/ 

rect = CGRectMake(0, 0, 400, 50); 



UIToolbar *myToolBar = [[UIToolbar alloc] initWithFrame:rect]; 
[myToolBar setBarStyle:UIBarStyleBlackTranslucent]; 
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"Finish" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelButtonPressed)]; 
UIBarButtonItem *flexiSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:@selector(myFunction)]; 
mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake (123,350,40,20)]; 
[mySwitch addTarget:self action:@selector(toggleFlash:) forControlEvents:UIControlEventAllTouchEvents]; 
UIBarButtonItem *switchBtn = [[UIBarButtonItem alloc] initWithCustomView:mySwitch]; 
//Order of how buttons appear or toolbar left to right. 
[myToolBar setItems:[NSArray arrayWithObjects: cancelButton, flexiSpace,switchBtn, nil] animated:YES]; 
myToolBar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight ; 


[cancelButton release]; 
[flexiSpace release]; 
[switchBtn release]; 

[view addSubview:myToolBar]; 
return view; 


} 

ответ

0

Вы устанавливаете его рамку с использованием постоянного значения. Тем не менее, кадр вашего представления уже установлен в этот момент, и он не изменится в соответствии с вашим методом autoresizingMask. Вы должны использовать вид в ограничивающей свойство вместо этого и сделать что-то вроде:

toolbar.frame = CGRectMake(self.view.bounds.origin.x, 0, self.view.bounds.size.width, 50); 

Другим вариантом было бы определение ограничений для вашей точки зрения.

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