|
//
// hotAskContentCell.m
// ThePaperHD
//
// Created by scar1900 on 15/1/28.
// Copyright (c) 2015年 scar1900. All rights reserved.
//
#import "hotAskContentCell.h"
@interface hotAskContentCell() {
CGFloat answerNumWidth;
}
@property(nonatomic, strong)UILabel *markLabel;
@end
@implementation hotAskContentCell
@synthesize commentBO = _commentBO;
@synthesize isHaveMenu = _isHaveMenu;
@synthesize hotAskDelegate;
//需要呼出自定义菜单
- (BOOL)canBecomeFirstResponder{
[super canBecomeFirstResponder];
return YES;
}
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.backgroundColor = [UIColor colorWithHexString:CardBackGroundColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.clipsToBounds = YES;
[self.contentView addSubview:self.menuButton];
[self.contentView addSubview:self.markLabel];
}
return self;
}
- (void)setIsHaveMenu:(BOOL)isHaveMenu {
if (isHaveMenu) {
self.menuButton.hidden = NO;
}else {
self.menuButton.hidden= YES;
}
}
- (UILabel*)markLabel {
if (!_markLabel) {
_markLabel = [[UILabel alloc]initWithFrame:CGRectZero];
_markLabel.backgroundColor = [UIColor colorWithHexString:@"0xc32128"];
_markLabel.layer.cornerRadius = 11/2;
_markLabel.clipsToBounds = YES;
_markLabel.textAlignment = NSTextAlignmentCenter;
_markLabel.textColor = [UIColor whiteColor];
_markLabel.font = appFont(7, NO);
_markLabel.hidden = YES;
}
return _markLabel;
}
- (void)setCommentBO:(commentObjectVO *)data {
_commentBO = data;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
userBO *user = setJsonDicToDataModel(data.userInfo, [userBO class]);
NSString *nameStr = user.sname?[NSString stringWithFormat:@"%@:",user.sname]:@"";
self.askNameHeight = heightForString(nameStr, self.askNameLabel.font, 400, self.askNameLabel.lineBreakMode);
NSString *answerNumStr = data.answerNums?[NSString stringWithFormat:@"(%@个回答)",data.answerNums]:@"";
// self.askContentHeight = returnTextHeightWithRTLabel(data.content, 930/2, appFont(15, NO),10);
self.askContentHeight = heightForAttributeStringWithLabel(getLineSpaceAttributedString(data.content, 10, appFont(TEXT_FOUR_LEVELSIZE, NO)), 930/2, appFont(TEXT_FOUR_LEVELSIZE, NO));
answerNumWidth = widthForString(answerNumStr, self.answerNumLabel.font, self.askNameHeight, self.answerNumLabel.lineBreakMode);
NSString *newNum = data.unNums;
dispatch_async(dispatch_get_main_queue(), ^{
if ([user.isAuth integerValue] ==1) {//认证用户提问或回答,头像不显示加”V“(bug:4116)
self.vipImg.hidden = NO;
}else{
self.vipImg.hidden = YES;
}
self.headPicImgView.imageUrl = user.pic;
self.askNameLabel.text = nameStr;
self.answerNumLabel.text = answerNumStr;
// self.askContentLabel.text = data.content;
self.askContentLabel.attributedText = getLineSpaceAttributedString(data.content, 10, appFont(TEXT_FOUR_LEVELSIZE, NO));
if ([newNum intValue] >0 ) {
self.markLabel.hidden = NO;
self.markLabel.text = newNum;
}else {
self.markLabel.hidden = YES;
self.markLabel.text = @"0";
}
[self layoutSubviews];
});
});
}
- (UIButton*)menuButton {
if (!_menuButton) {
_menuButton = [UIButton buttonWithType:UIButtonTypeCustom];
_menuButton.backgroundColor = [UIColor clearColor];
[_menuButton addTarget:self action:@selector(menuTap:) forControlEvents:UIControlEventTouchUpInside];
}
return _menuButton;
}
- (void)layoutSubviews {
[super layoutSubviews];
if (self.isEditing) {
[self sendSubviewToBack:self.contentView];
}
self.headPicImgView.frame = CGRectMake(35, 15, 35, 35);//【需求】话题:话题的问答详情页(bug:4315) 35 35改为20
self.vipImg.center = CGPointMake(self.headPicImgView.center.x+15, self.headPicImgView.center.y+12);//认证用户提问或回答,头像不显示加”V“(bug:4116)
self.askNameLabel.frame = CGRectMake(CGRectGetMaxX(self.headPicImgView.frame)+18,
CGRectGetMinY(self.headPicImgView.frame)+7,
400,
self.askNameHeight);
CGFloat nameWidth = widthForString(self.askNameLabel.text, self.askNameLabel.font, self.askNameHeight, self.askNameLabel.lineBreakMode);
self.askNameButton.frame = CGRectMake(CGRectGetMinX(self.askNameLabel.frame)-5,CGRectGetMinY(self.askNameLabel.frame)-5, nameWidth+10, self.askNameHeight+10);
self.askContentLabel.frame = CGRectMake(CGRectGetMinX(self.askNameLabel.frame),
CGRectGetMaxY(self.headPicImgView.frame),
930/2,
self.askContentHeight);
self.answerNumLabel.frame = CGRectMake(CGRectGetMaxX(self.askContentLabel.frame)-answerNumWidth,
CGRectGetMinY(self.askNameLabel.frame),
answerNumWidth,
CGRectGetHeight(self.askNameLabel.frame));
self.dashedLineView.frame = CGRectMake(CGRectGetMinX(self.askNameLabel.frame),
CGRectGetHeight(self.bounds)-1,
1175/2,
1);
self.menuButton.frame = CGRectMake(CGRectGetMaxX(self.headPicImgView.frame),
CGRectGetMaxY(self.askNameButton.frame)+5,
CGRectGetWidth(self.bounds)-CGRectGetMaxX(self.headPicImgView.frame),
CGRectGetHeight(self.bounds)-CGRectGetMaxY(self.askNameButton.frame)-5);
self.markLabel.frame = CGRectMake(CGRectGetMaxX(self.answerNumLabel.frame)-5, CGRectGetMinY(self.answerNumLabel.frame)-5, 11, 11);
self.pushInfo.frame = self.headPicImgView.frame;
for (UIView *subview in self.subviews) {
for (UIView *subview2 in subview.subviews) {
if ([NSStringFromClass([subview2 class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) { // move delete confirmation view
[subview bringSubviewToFront:subview2];
}
}
}
}
#pragma mark - menu tap handler
- (void)menuTap:(UIButton*)btn {
[self becomeFirstResponder];
UIMenuItem *commentBack = [[UIMenuItem alloc] initWithTitle:@"回答"action:@selector(commentBack:)];
UIMenuItem *copy = [[UIMenuItem alloc] initWithTitle:@"复制"action:@selector(copyText:)];
UIMenuItem *delete = [[UIMenuItem alloc] initWithTitle:@"删除"action:@selector(deleteComment:)];
// UIMenuItem *praise = [[UIMenuItem alloc] initWithTitle:@"点赞"action:@selector(praise:)];
UIMenuController *menu = [UIMenuController sharedMenuController];
if (menu.menuVisible) {
[menu setMenuVisible:NO animated:YES];
return;
}
NSDictionary *userInfo = self.commentBO.userInfo;
userBO *user = setJsonDicToDataModel(userInfo, [userBO class]);
if ([user.userId longLongValue] == [[TPUserDefault instance].userBO.userId longLongValue]) {
[menu setMenuItems:[NSArray arrayWithObjects:delete,commentBack, copy, nil]];
}else {
[menu setMenuItems:[NSArray arrayWithObjects:commentBack, copy, nil]];
}
[menu setTargetRect:self.askContentLabel.frame inView:self];
[menu setMenuVisible:YES animated:YES];
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
[super canPerformAction:action withSender:sender];
if ( action == @selector(commentBack:) || action == @selector(copyText:) || action == @selector(deleteComment:))
{
return YES;
}
else
{
return NO;
}
}
- (void)copyText:(id)sender {
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string = self.askContentLabel.text;
ShowMessage(@"复制成功", YES);
[MobClick event:@"22"];
}
- (void)commentBack:(id)sender {
if ([self.hotAskDelegate respondsToSelector:@selector(menuClickAnswer: closeHidden:)]) {
[self.hotAskDelegate menuClickAnswer:self.commentBO closeHidden:YES];
}
}
- (void)deleteComment:(id)sender {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"是否确认删除此发言?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"删除",nil];
[alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex != 0) {
NSDictionary *dic = @{@"commentIds":self.commentBO.commentId,@"commentType":@"1"};
__weak typeof(self) Self = self;
[Remote doJsonActionWithBlock:2001 requestUrl:removeCommentmspURL parameter:dic withWaitCursor:YES completion:^(BOOL success, NSString *message, id responseData) {
if (success) {
[MobClick event:@"27"];
if ([Self.hotAskDelegate respondsToSelector:@selector(deleteAskSuccess)]) {
[Self.hotAskDelegate deleteAskSuccess];
}
ShowMessage(@"删除成功",YES);
}else {
ShowMessage(@"删除失败", NO);
}
}];
}
}
@end
|