Перемещение объекта UIView при вращении ViewController - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть пользовательский UIView, который я использую для заголовка UITableView.Я создаю это в коде.(Я в основном следую за TVAnimationGestures от WWDC 2010).Для элементов пользовательского интерфейса, которые немного смещены от левой стороны, это выглядит хорошо в любой ориентации.Однако, если я хочу UILabel, который смещен от правого размера, я не уверен, что делать.Если бы я был в IB, я бы использовал пружины / распорки.Но не уверен, как это сделать в коде.Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2011

Простой способ сделать это - реализовать метод в представлении, который разместит его подпредставления в соответствии с UIInterfaceOrientation.

Затем этот метод можно вызвать из UIViewController при обнаружении вращения.

Например:

В YourView.h

@interface YourView : UIView {

}

// Public API
- (void)placeWidgetsForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;

@end

In YourView.m

#import "YourView.h"

@implementation YourView

...

#pragma mark -
#pragma mark Public API

- (void)placeWidgetsForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Change frames of subviews according to orientation in here
}

@end

Тогда в YourController.m

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    YourView *theView = (YourView *) self.view; // Or where ever your view is
    [theView placeWidgetsForInterfaceOrientation:toInterfaceOrientation];
}
0 голосов
/ 07 декабря 2011

пружин / распорок в IB - это графический интерфейс для autoresizingMask:

http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW6

Для правильного выравнивания, вы хотите расположить метку с правильным смещением при первом ее создании иустановите autoresizingMask в UIViewAutoresizingF FlexibleLeftMargin (и любые другие, которые вы хотите.)

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