做网站珊瑚橙颜色怎么搭配好看,网站建设设计培训班,c# 手机版网站开发,网站流量统计分析的维度包括项目中横向一排元素#xff0c;竖向一排元素#xff0c;可以使用UIStackView。UIStackView的原理不做介绍#xff0c;这里主要讲两个初次使用容易出现的两个问题。 首先创建一个stackview
-(UIStackView*)titleStackView{if(_titleStackView nil){_titleStackView [UISta…项目中横向一排元素竖向一排元素可以使用UIStackView。UIStackView的原理不做介绍这里主要讲两个初次使用容易出现的两个问题。 首先创建一个stackview
-(UIStackView*)titleStackView{if(_titleStackView nil){_titleStackView [UIStackView new];_titleStackView.spacing 5;_titleStackView.axis UILayoutConstraintAxisHorizontal;_titleStackView.alignment UIStackViewAlignmentCenter;_titleStackView.distribution UIStackViewDistributionFill;}return _titleStackView;
} 向stackview中添加view
[self.titleStackView addArrangedSubview:self.starIcon];
[self.titleStackView addArrangedSubview:self.vipImageView];
[self.titleStackView addArrangedSubview:self.circleMasterTag];
[self.titleStackView addArrangedSubview:self.circleManagerTag]; 默认情况下stackview中的元素是填满整个stackview的fill属性是distribution。其他的axisalignment比较好理解。
第一个要点stackview中的view需要使用masonry不能使用frame 从结果上看如果使用framestackview会依赖元素自身大小布局比如皇冠的icon frame是20*14.5。但是皇冠图片是99pt所以按照99pt去布局。比如“圈主”“管理员”两个带颜色的label它们在初始化的时候手动写的width。stack仍使用文本自身宽度布局。
比如starIcon的创建需要写masonry以及抗压缩和抗拉伸属性。
- (UIButton *)starIcon {if (!_starIcon) {_starIcon [UIButton buttonWithType:UIButtonTypeCustom];_starIcon.clipsToBounds YES;_starIcon.layer.cornerRadius 3.f;[SVUserIdentityUtil starIdentityIconWithComplete:^(UIImage * _Nonnull image) {[_starIcon setBackgroundImage:image forState:UIControlStateNormal];}];[_starIcon setTitle:明星 forState:UIControlStateNormal];_starIcon.titleLabel.font UIFontMedium_9;[_starIcon setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];[_starIcon setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];[_starIcon setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];[_starIcon mas_makeConstraints:^(MASConstraintMaker *make) {make.width.mas_equalTo(25);make.height.mas_equalTo(13);}];}return _starIcon;
}
第二个要点使用spacer
如果你想在宽度足够的情况洗左对齐。右边部分可以使用spacer自定义一个UIView抗拉伸和抗压缩都设置low优先级
如图所示使用spacer和未使用space的效果 右侧的spacer的抗压缩和抗拉伸都是最低所以会优先拉伸spacer 最后如果将stackview中的某个view隐藏setHiddenyes那么后面的view会自动往前移动。