2016-02-16 1 views
0

enter image description hereРазметка равные секции на вид в Xcode

Im желая настроить мой взгляд в раскадровке так выкладывает, как на картинке выше. В представлении есть 2 отдельных раздела, когда пейзаж равен 50/50 по горизонтали, а затем, когда портрет поворачивается до 50/50 по вертикали.

Каков наиболее подходящий способ установить это внутри построителя интерфейса xcode? Могу ли я использовать ограничения для достижения этого? Это нужно будет спроектировать так, чтобы оно масштабировалось для ipad и iphone.

+0

К сожалению, у iPad есть только один тип макета как для пейзажа, так и для портрета. Я не думаю, что есть способ сделать то, что вы хотите сделать через раскадровку. Проверьте следующее: возможно, это поможет -> [http://stackoverflow.com/questions/26633172/sizing-class-for-ipad-portrait-and-landscape-modes/28268200#28268200](http:// stackoverflow.com/questions/26633172/sizing-class-for-ipad-portrait-and-landscape-modes/28268200#28268200). – RPK

ответ

0

Я строю проект для тестирования. Он работает, проверьте скриншоте

IPad в портретном iPad in Portrait IPad в ландшафтном iPad in Landscape

Это не может быть сделано в раскадровке, потому что IPad получил только один макет в раскадровку. , но очень просто добиться того, что вам нужно программно.

//ViewController.m 
#import "ViewController.h" 

@interface ViewController() 

@property (nonatomic, strong) UIView *firstView; 
@property (nonatomic, strong) UIView *secondView; 
@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    self.firstView = [[UIView alloc] initWithFrame:CGRectZero]; 
    self.firstView.backgroundColor = [UIColor redColor]; 
    [self.view addSubview:self.firstView]; 
    self.secondView = [[UIView alloc] initWithFrame:CGRectZero]; 
    self.secondView.backgroundColor = [UIColor blueColor]; 
    [self.view addSubview:self.secondView]; 
    [self setupSubViewLayout]; 
} 

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { 
    [self setupSubViewLayout]; 
} 

- (void)setupSubViewLayout { 
    CGFloat viewWidth = self.view.frame.size.width; 
    CGFloat viewHeight = self.view.frame.size.height; 
    CGRect firstRect; 
    CGRect secondRect; 
    if (viewWidth > viewHeight) { 
     firstRect = CGRectMake(0, 0, viewWidth/2.0, viewHeight); 
     secondRect = CGRectMake(viewWidth/2.0, 0, viewWidth/2.0, viewHeight); 
    }else { 
     firstRect = CGRectMake(0, 0, viewWidth, viewHeight/2.0); 
     secondRect = CGRectMake(0, viewHeight/2.0, viewWidth, viewHeight/2.0); 
    } 
    self.firstView.frame = firstRect; 
    self.secondView.frame = secondRect; 
} 
Смежные вопросы