панель поиска и таблицы не подходят к экрану в режиме ландшафта - PullRequest
2 голосов
/ 02 сентября 2011

Я создаю панель поиска и табличное представление программно, используя следующий код

UISearchBar* searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0,0,320,40)];
searchBar.delegate = self;
[self.view addSubview:searchBar];

UITableView* tblView = [[UITableView alloc]initWithFrame:CGRectMake(0, 41, 320, 400)];
tblView.delegate = self;
tblView.dataSource = self;
[self.view addSubview:tblView];

Теперь я сделал возвращаемое значение да в следующем методе, чтобы повернуть экран относительно ориентации устройства

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{

    return YES;
}

и я использовал следующий код в loadView

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

Следующие мои выходные данные

enter image description here, но все еще панель поиска и представления таблицы не соответствуют экрану в альбомной ориентациирежим, что я должен сделать, может кто-нибудь помочь мне, спасибо заранее

Ответы [ 3 ]

5 голосов
/ 02 сентября 2011

вы указали представлению изменить размер, но не указали, что созданная панель поиска изменила размер, попробуйте что-то вроде:

searchbar.autorezingMask = UIViewAutoresizingFlexibleWidth;

сделайте то же самое для представления таблицы.

Посмотрим, даст ли это результат, который вы ищете.Если это не работает, вы всегда можете изменить размер фрейма панели поиска и представления таблицы после поворота.

1 голос
/ 02 сентября 2011

Попробуйте вызвать эту маску autoresizingMask в методе ViewWillAppear.

0 голосов
/ 02 сентября 2011

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

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
...