EYTagView
EYTagView copied to clipboard
解决EYCheckBoxButton 字数超出屏幕不显示问题
解决代码
-
(EYCheckBoxButton *)tagButtonWithTag:(NSString *)tag { EYCheckBoxButton *tagBtn = [[EYCheckBoxButton alloc] init]; tagBtn.colorBg=_colorTagBg; tagBtn.colorTagUnSelected=_colorTagUnselected; tagBtn.colorTagBorder=_colorTagBoard; tagBtn.colorText=_colorTag; tagBtn.titleLabel.lineBreakMode = 0; tagBtn.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; tagBtn.colorTagUnBorder=_colorTagUnSelectBoard; tagBtn.colorUnSelectBg=_colorTagUnSelectBg; tagBtn.selected=YES; [tagBtn.titleLabel setFont:_fontTag]; [tagBtn setBackgroundColor:_colorTagBg]; [tagBtn setTitleColor:_colorTag forState:UIControlStateNormal]; [tagBtn addTarget:self action:@selector(handlerTagButtonEvent:) forControlEvents:UIControlEventTouchUpInside]; [tagBtn setTitle:tag forState:UIControlStateNormal];
CGRect btnFrame; btnFrame.size.height = _tagHeight; tagBtn.layer.cornerRadius = btnFrame.size.height * self.borderRadius; CGFloat width=[tagBtn.titleLabel.text sizeWithAttributes:@{NSFontAttributeName:_fontTag}].width + (tagBtn.layer.cornerRadius * 2.0f) + _textPaddingSize.width_2; if (width>_svContainer.contentSize.width) { int widhts=_svContainer.contentSize.width-(tagBtn.layer.cornerRadius * 2.0f) + _textPaddingSize.width_2-15; int height=(ceilf(width/widhts))*[tagBtn.titleLabel.text sizeWithAttributes:@{NSFontAttributeName:_fontTag}].height+5; _tagHeight=height; btnFrame.size.height = height; btnFrame.size.width = widhts; }else{ btnFrame.size.width = width; }
tagBtn.frame=btnFrame; return tagBtn; }
现在代码逻辑是这样子的:
- 输入时候, 不可以超过最大长度.
- 当初始化的tag超过长度, 可以缩小字体, 或者显示
...
你的代码有点多, 不知道你是什么逻辑
应为某种情况,我需要显示的内容超过屏幕宽度,并且不能缩小字体 或者显示...如图 http://7tszer.com1.z0.glb.clouddn.com/9C667EDF-6C62-4211-A63B-774F8D7D5984.png 产品套餐那一块
这个就不是tag了, 相当于button了, EYTagView改改也能实现, 不过有点乱感觉, 你可以先改着用
@ygweric 这种需求很多APP都有...GITHUB上找了很多,都不如你的完美