[英]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.