如上所示,我想在工具栏上创建一个带有 UIImageView 和 UILabel 的 UIBarButtonItem。我试过了
UIButton *likecommButton = [UIButton buttonWithType:UIButtonTypeCustom];
likecommButton.backgroundColor = [UIColor clearColor];
[likecommButton addTarget:self action:@selector(likecommButtonClicked:) forControlEvents:UIControlEventTouchDown];
UIImageView *likeImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"like.png"]];
likeImageView.frame = CGRectMake(0.0, 0.0, LikeCommentImageEdge, LikeCommentImageEdge);
likeImageView.backgroundColor = [UIColor clearColor];
[likecommButton addSubview:likeImageView];
[likeImageView release];
CGSize numberSize = [@"99" sizeWithFont:[UIFont fontWithName:@"Verdana-Bold" size:12]
constrainedToSize:CGSizeMake(20.0, 20.0)
lineBreakMode:UILineBreakModeTailTruncation];
_likeNumberLabel = [[UILabel alloc] initWithFrame: CGRectMake(likeImageView.frame.size.width, 0.0, numberSize.width, numberSize.width)];
_likeNumberLabel.backgroundColor = [UIColor clearColor];
_likeNumberLabel.textColor = [UIColor whiteColor];
_likeNumberLabel.font = [UIFont fontWithName:@"Verdana-Bold" size:12];
_likeNumberLabel.textAlignment = UITextAlignmentRight;
_likeNumberLabel.lineBreakMode = UILineBreakModeClip;
[likecommButton addSubview:_likeNumberLabel];
UIImageView *commentImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"comment.png"]];
commentImageView.frame = CGRectMake(_likeNumberLabel.frame.origin.x + _likeNumberLabel.frame.size.width, 0.0, LikeCommentImageEdge, LikeCommentImageEdge);
commentImageView.backgroundColor = [UIColor clearColor];
[likecommButton addSubview:commentImageView];
[commentImageView release];
_commentNumberLabel = [[UILabel alloc] initWithFrame: CGRectMake(toolBarButtonWidth - numberSize.width, 0.0, numberSize.width, numberSize.width)];
_commentNumberLabel.backgroundColor = [UIColor clearColor];
_commentNumberLabel.textColor = [UIColor whiteColor];
_commentNumberLabel.font = [UIFont fontWithName:@"Verdana-Bold" size:12];
_commentNumberLabel.textAlignment = UITextAlignmentRight;
_commentNumberLabel.lineBreakMode = UILineBreakModeClip;
[likecommButton addSubview:_commentNumberLabel];
likecommButton.frame = CGRectMake(0.0, 0.0, toolBarButtonWidth, numberSize.height);
_likeCommCountButton = [[UIBarButtonItem alloc] initWithCustomView:likecommButton];
_likeCommCountButton.width = toolBarButtonWidth;
_likeCommCountButton.enabled = NO;
但只能得到这个
如何像第一张图片一样创建 UIBarButtonItem,包括 UIImageView 和 UILabel 也有 UIBarButtonItemStyleBordered 样式?
谢谢
更新 20120506
这是遵循@RA 的想法——小工具栏
这个问题我知道如何将框架设置为工具栏,但无法获得其他两个 UIBarButtonItems“Like”和“Comment”的高度。那么我无法设置小工具栏的高度。
然后我尝试将所有控制器、两个图像视图和两个标签添加到 UISegmentControl
如您所见,第三个 uibarbuttonitem(UISegmentControl 之一)与其他两个不同。我设置
segmentControl.tintColor = [UIColor clearColor];
segmentControl.backgroundColor = [UIColor clearColor];
不行。
我更喜欢@RA 的那个,但需要一种方法来获取另外两个 UIBarButtonItem 的高度来设置第三个小工具栏的高度。
更新 20120509
我花了太多时间,我必须继续前进,我现在正在使用 UISegmentControl 解决方案(哪种风格略有不同)。我不会结束这个问题。以后我会继续研究它。非常感谢下面朋友的帮助,尤其是@RA @vishiphone 你们给了我不同的想法。希望我们仍然可以团结起来挖掘更多的问题。我稍后会继续这个话题。希望你们还在这里!非常感谢!