这种【既带数字,又带图片的按钮】的效果 的实现思路是怎样的? - OurCoders (我们程序员)

OC

这种【既带数字,又带图片的按钮】的效果 的实现思路是怎样的?

kakashilw 发布于 2013年12月28日
无人欣赏。

这种【既带数字,又带图片的按钮】的效果的实现思路是怎样的?应该随着数字的变大,按钮也变长, 如下图 ---

alt text

共5条回复
清醒疯子 回复于 2013年12月28日

可不可以通过cell里面插图片和Label来实现呢?:)

adad184 回复于 2013年12月28日

UIButton可以直接支持image和label同时显示

随着文字变长 只需要计算文字的宽度 然后重新调整frame就可以了

yangjie6020 回复于 2013年12月28日

2楼 @adad184 UIButton addSubView UIImageView UILabel 然后计算长度即可

清醒疯子 回复于 2013年12月28日

2楼 @adad184

3楼 @yangjie6020 学习了:)谢谢啊:)我基础太差了:):):)

adad184 回复于 2013年12月29日

3楼 @yangjie6020 UIButton就自带了UIImageVIew和UILabel

之前有个项目我是这样做的 如果需要动态调整宽度的话 略为修改一下代码就可以实现了

#import <UIKit/UIKit.h>
@interface TSSIconButton : UIButton
+ (id)buttonWithTagName:(NSString*)tagName;
@property (nonatomic, strong) UIImage *icon;
@property (nonatomic, strong) UIColor *textColor;
@property (nonatomic, strong) NSString *text;
@property (nonatomic, strong) UIFont *textFont;
@end
#import "TSSIconButton.h"
@implementation TSSIconButton
+ (id)buttonWithTagName:(NSString *)tagName
{
 TSSIconButton *btn = [TSSIconButton buttonWithType:UIButtonTypeCustom];
 btn.userInteractionEnabled = NO;
 [btn setTagName:tagName];
 btn.titleLabel.font = [APP getFont:18];
 btn.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
 btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
 btn.contentEdgeInsets = UIEdgeInsetsMake(0, 5, 0, 0);
 btn.titleEdgeInsets = UIEdgeInsetsMake(2, 5, 0, 0);
 return btn;
}
- (void)setIcon:(UIImage *)icon
{
 [self setImage:icon forState:UIControlStateNormal];
}
- (void)setText:(NSString *)text
{
 [self setTitle:text forState:UIControlStateNormal];
}
- (void)setTextColor:(UIColor *)textColor
{
 [self setTitleColor:textColor forState:UIControlStateNormal];
}
- (void)setTextFont:(UIFont *)textFont
{
 self.titleLabel.font = textFont;
}
@end
登录 或者 注册
发布新帖
相关帖子
相关新闻
最新帖子

AltStyle によって変換されたページ (->オリジナル) /