簡體   English   中英

如何在iOS中使用自動布局制作垂直間距的黑白UIField

[英]How to make Vertical spacing B/W UIFields using Auto-layouts in Ios

在此處輸入圖片說明

嗨,我是iOS的新手,在我的應用中,我使用的是自動布局視覺格式

但是如何在各種條件下更改垂直間距

為此,我使用下面的代碼,但垂直間距未設置黑白UIfields

看到我下面的屏幕垂直空間,我在這里給出了“ 15”,但它沒有應用

我的代碼:

- (void)viewDidLoad {
    [super viewDidLoad];

 NSDictionary * views1 = NSDictionaryOfVariableBindings(RoundTripLabel,RoundTripDateTextField,RoundTripButton,BottomLabel1,BottomLabel2);


//Appying Horizental contstraints:-

    [MainScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-8-[RoundTripLabel]-8-|" options:0 metrics:nil views:views1]];

    [MainScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-8-[RoundTripDateTextField]-8-[RoundTripButton(30)]-|" options:0 metrics:nil views:views1]];

    [MainScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-8-[BottomLabel1]-8-|" options:0 metrics:nil views:views1]];

    [MainScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-8-[BottomLabel2]-8-|" options:0 metrics:nil views:views1]];


    //Appying Vertical contstraints:-

    [MainScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-100-[RoundTripLabel(17)]-10-[RoundTripDateTextField]-0-[BottomLabel1(17)]-10-[BottomLabel2(17)]" options:0 metrics:nil views:views1]];

     NSDictionary * views2 = NSDictionaryOfVariableBindings(RoundTripLabel,RoundTripButton);

    [MainScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[RoundTripLabel]-10-[RoundTripButton]" options:0 metrics:nil views:views2]];


    //Defining  Heights Using Constraint With Item Formate:-

    RoundTripDateTextFieldHeight = [NSLayoutConstraint constraintWithItem:RoundTripDateTextField attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:30.0f];
    [MainScrollView addConstraint:RoundTripDateTextFieldHeight];

    RoundTripButtonHeight = [NSLayoutConstraint constraintWithItem:RoundTripButton attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:30.0f];
    [MainScrollView addConstraint:RoundTripButtonHeight];

    VerticalSpacing = [NSLayoutConstraint constraintWithItem:BottomLabel1 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:RoundTripDateTextField attribute:NSLayoutAttributeBottom multiplier:1.0f constant:15.0f];
    [MainScrollView addConstraint:RoundTripDateTextFieldHeight];

    [MainScrollView setNeedsDisplay];

}

在您的代碼中,這些約束存在問題

第一個約束:

而不是再次添加RoundTripDateTextFieldHeight ,您需要添加VerticalSpacing

VerticalSpacing = [NSLayoutConstraint constraintWithItem:BottomLabel1 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:RoundTripDateTextField attribute:NSLayoutAttributeBottom multiplier:1.0f constant:15.0f];
[MainScrollView addConstraint:VerticalSpacing];  // instead of [MainScrollView addConstraint:RoundTripDateTextFieldHeight];

第二名

在2個標簽之間添加垂直間距

NSLayoutConstraint *VerticalSpacingLbl2 = [NSLayoutConstraint constraintWithItem:BottomLabel2 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:BottomLabel1 attribute:NSLayoutAttributeBottom multiplier:1.0f constant:10.0f];
[MainScrollView addConstraint:VerticalSpacingLbl2];  

第三名

在約束之下變化

  //Appying Vertical contstraints:-

  [MainScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-100-[RoundTripLabel(17)]-10-[RoundTripDateTextField]-0-[BottomLabel1(17)]-10-[BottomLabel2(17)]" options:0 metrics:nil views:views1]];

有了這個

 [MainScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-100-[RoundTripLabel(17)]-10-[RoundTripDateTextField]" options:0 metrics:nil views:views1]];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM