как я могу изменить ориентацию по событиям нажатия кнопки? - PullRequest
1 голос
/ 23 января 2010

Я использовал TableView, а также использовал кнопку «Раскрытие», нажав кнопку «Раскрытие». У меня есть одно Особое изображение. Я хочу, чтобы при нажатии кнопки «Раскрытие» мне приходилось получать это конкретное изображение с выполнением ориентации, и как я могу это сделать. Помогите мне, пожалуйста. Я новичок в такого рода приложениях.

Ответы [ 2 ]

2 голосов
/ 23 января 2010

Вам необходимо вручную преобразовать таблицу. Вот некоторый код для создания и поворота UITableView вокруг его центра.

// this defines a constant PORTRAIT_FRAME, which is the frame of the iPhone screen 
// minus the Status Bar. Equivalent to CGRectMake(0,20,320,460). 
#define PORTRAIT_FRAME [[UIScreen mainScreen] applicationFrame]

// this defines a constant LANDSCAPE_FRAME, for orienting the table sideways
#define LANDSCAPE_FRAME CGRectMake(0,20,480,300)


// this function assumes you have a class variable called myTableView
// and it toggles the orientation of myTableView
- (void) rotateTable {

  if (myTableView.transform == CGAffineTransformMakeRotation(0)) {
    // rotate the image by 90 degrees  
    myTableView.transform = CGAffineTransformMakeRotation(M_PI/2); 
    myTableView.frame = LANDSCAPE_FRAME;
    return;
  }

  // set the image to its original orientation 
  myTableView.transform = CGAffineTransformMakeRotation(0); 
  myTableView.frame = PORTRAIT_FRAME;

}

Если вы хотите запустить это вращение одним нажатием кнопки, тогда объявите UIButton и назначьте эту функцию как действие Вот функция для создания UIButton. Просто передайте его @ "rotateImage" для действия и себя для цели.

+ (UIButton*) getButtonAtPoint:(CGPoint)point 
                             target:(id)target 
                             action:(NSString*)action {

  UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
  [button addTarget:target 
             action:NSSelectorFromString(action)
   forControlEvents:UIControlEventTouchUpInside];
  return button;
}
0 голосов
/ 23 января 2010

Я думаю, что вам может понадобиться использовать setStatusBarOrientation UIApplication: animated: и повернуть / изменить размер вашего верхнего уровня вручную. Если вы используете методы блока анимации UIView, то вы должны просто иметь возможность сделать это внутри блока анимации и зафиксировать его, чтобы получить по существу тот же эффект. Хотя сам не пробовал.

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