2015-05-19 5 views
0

Я использую SIZES CLASSES в раскадровке iOS. Я хочу загрузить uitableview в uiview при простом действии кнопки. То, с чем я столкнулся, - это перетаскивание вида слева направо при первом открытии. когда я нажимаю кнопку, он показывает нормальный размер кадра UIVIEW's. Я также предоставил конечное горизонтальное пространство и ведущее горизонтальное пространство, как показано на моем изображении, но все же я не могу избежать перетаскивания uitableview при первой загрузке. UITABLEVIEW вытащили слева направо (кажется, ведущее место, но там не было. Я также дал как начальные и конечные пробелы, поэтому UIVIEW должен выравнивать себя в центре экрана.)DRAGGED uiview iOS

Я звоню в методе ViewDidLoad [self MYBUTTON]; для автоматического запуска кнопки и загрузки UITABLEVIEW в UIVIEW. Но я загружаю перетаскиваемый UITABLE VIEW, но когда я нажимаю на эту кнопку, он загружается нормально и нормально.

Что я должен проверить и на какой предмет хочу сосредоточиться. SIZES CLASSES, ограничения UIVIEW или ограничения UITABLEVIEW или мое кодирование. Как решить это и какое конкретное решение мне нужно для обработки этого автоматического triigered UIVIEW?

Мой КОД:

- (void)viewDidLoad 
{ 
[self MYBUTTON]; // auto triigger on first load 

[self.MYBUTTON addTarget:self action:@selector(myB) forControlEvents:UIControlEventTouchUpInside]; 

} 

-(void)myB{ 
    [self unslelectallbuttons]; 
    self.MYBUTTON.selected = YES; 
    for(UIView *subview in [self.contentView subviews]) { 
     [subview removeFromSuperview]; 
    } 
    MYTABLEVIEW *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"mytable"]; 
    vc.view.frame = self.contentView.bounds; 
    [vc willMoveToParentViewController:self]; 
    [self.contentView addSubview:vc.view]; 
    [self addChildViewController:vc]; 
    [vc didMoveToParentViewController:self]; 
} 

DRAGGED VIEW

+0

Это действительно непонятно, что вы спрашиваете. Можете ли вы попытаться решить проблему? – RyanR

+0

Помог ли ответ? У вас все еще проблемы с рамкой вашего представления? –

ответ

1

Я не уверен, что если порядок имеет значение, но это работает для меня. TableView должен появиться на месте, без каких-либо признаков анимирования сбоку, как вы, кажется, описываете.

[self addChildViewController:vc]; 
vc.view.frame = self.contentView.bounds; 
[self.contentView addSubview:vc.view]; 
[vc didMoveToParentViewController:self]; 

В моем приложении, я держу свойство моего контроллера Tableview, который лениво реализованным:

- (BIBLESelectBookViewController *)selectBookViewController { 
    if (!_selectBookViewController) { 
     UIStoryboard *storyboard = self.storyboard; 
     _selectBookViewController = [storyboard instantiateViewControllerWithIdentifier:@"BibleKitSelectBookViewControllerID"]; 

     _selectBookViewController.currentBook = self.currentBook; 
    } 
    return _selectBookViewController; 
} 

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

Вот метод цикла я использую:

- (void)cycleFromViewController:(UIViewController *)firstController toViewController:(UIViewController *)secondController animateInFromRight:(BOOL)fromRight { 
    // Disable segmented control interaction during the view controller transition 

    self.booksChaptersVersesSegmentedControl.userInteractionEnabled = NO; 

    [self addChildViewController:secondController]; 
    [firstController willMoveToParentViewController:nil]; 

    CGFloat offset = CGRectGetWidth(firstController.view.frame) * (fromRight ? 1 : -1); 

    CGRect frame = firstController.view.frame; 
    frame.origin.x += offset; // second controller animates in from right (left) 
    secondController.view.frame = frame; 

    [self transitionFromViewController:firstController 
         toViewController:secondController 
           duration:0.3 
           options:UIViewAnimationOptionCurveEaseInOut 
          animations:^(void) { 
           secondController.view.frame = firstController.view.frame; 
           CGRect frame = firstController.view.frame; 
           frame.origin.x -= offset; // first controller animates out to left (right) 
           firstController.view.frame = frame; 
           [self setToolbarItems:secondController.toolbarItems animated:YES]; 
           [self.navigationController setToolbarHidden:self.toolbarItems ? NO : YES animated:YES]; 
          } 
          completion:^(BOOL __unused finished) { 
           [firstController removeFromParentViewController]; 
           [secondController didMoveToParentViewController:self]; 
           self.booksChaptersVersesSegmentedControl.userInteractionEnabled = YES; 
          } 
    ]; 
} 
+0

Что такое booksChaptersVersesSegmentedControl .. – developer

+0

Это похоже на вашу кнопку (и). Выбранный сегмент указывает, какой контроллер отображения должен отображаться. Если вы пытаетесь сделать то, что я делаю, сегментный элемент управления может быть проще работать, чем несколько кнопок. http://i.stack.imgur.com/JQlXS.png –