ifish/Ifish/UMCommunity/UMCommunitySDK/UMCommunityUI/Common/Edit/UMComSelectTopicView.m

176 lines
5.8 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// UMComSelectTopicView.m
// UMCommunity
//
// Created by 张军华 on 16/3/24.
// Copyright © 2016年 Umeng. All rights reserved.
//
#import "UMComSelectTopicView.h"
#import "UMComResouceDefines.h"
#import <UMComFoundation/UMComKit+Color.h>
//以下为iphone6的内部模板
const static int g_UMComSelectTopicView_leadmarginTemplate = 15;//左边空白区域
const static int g_UMComSelectTopicView_tailmarginTemplate = 13;//右边空白区域
const static int g_UMComSelectTopicView_ImageTopmargin = 13;//图片上边距
const static int g_UMComSelectTopicView_ImageWidth = 16;//图片宽
const static int g_UMComSelectTopicView_ImageHeight = 20;//图片高
const static int g_UMComSelectTopicView_IndicatorViewWidth = 20;//指示器的宽
const static int g_UMComSelectTopicView_IndicatorViewHeight = 20;//指示器的高
const static int g_UMComSelectTopicView_marginBetweenImageAndLabel = 6;//图片和文字区域的空白
@interface UMComSelectTopicView ()
@property (nonatomic, assign) CGFloat height;
@property (nonatomic,readwrite,strong) UILabel* placeholder;
@property (nonatomic,readwrite,strong)UITapGestureRecognizer* tap;
-(void)handleTapGesture:(UIGestureRecognizer*)gestureRecognizer;
@end
@implementation UMComSelectTopicView
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
self.imageView = [[UIImageView alloc] initWithImage:UMComImageWithImageName(@"um_edit_#_normal")];
self.imageView.backgroundColor = [UIColor clearColor];
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
[self addSubview:self.imageView];
self.label = [[UILabel alloc] init];
self.label.backgroundColor = [UIColor clearColor];
self.label.font = UMComFontNotoSansLightWithSafeSize(15);
self.label.textColor = UMComColorWithHexString(@"#A5A5A5");
[self addSubview:self.label];
self.indicatorView = [[UIImageView alloc] initWithImage:UMComImageWithImageName(@"um_edit_!_heilight")];
self.indicatorView.contentMode = UIViewContentModeScaleAspectFit;
[self addSubview:self.indicatorView];
self.tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
[self addGestureRecognizer:self.tap];
}
return self;
}
- (void)dealloc
{
[self removeGestureRecognizer:self.tap];
self.imageView = nil;
self.label = nil;
self.indicatorView = nil;
self.placeholder = nil;
}
-(void) doRelayoutChildControlsWithFrame:(CGRect)frame
{
CGFloat parentHeight = frame.size.height;
CGFloat parentWidth = frame.size.width;
self.imageView.frame = CGRectMake(g_UMComSelectTopicView_leadmarginTemplate, g_UMComSelectTopicView_ImageTopmargin, g_UMComSelectTopicView_ImageWidth, g_UMComSelectTopicView_ImageHeight);
self.indicatorView.frame = CGRectMake(parentWidth - g_UMComSelectTopicView_tailmarginTemplate - g_UMComSelectTopicView_IndicatorViewWidth, g_UMComSelectTopicView_ImageTopmargin, g_UMComSelectTopicView_IndicatorViewWidth, g_UMComSelectTopicView_IndicatorViewHeight);
//计算label的位置
self.label.frame = CGRectMake(self.imageView.frame.origin.x + self.imageView.frame.size.width + g_UMComSelectTopicView_marginBetweenImageAndLabel,0, self.indicatorView.frame.origin.x - g_UMComSelectTopicView_marginBetweenImageAndLabel - self.imageView.frame.origin.x - self.imageView.frame.size.width,parentHeight);
}
-(void) hidePlaceholder:(BOOL)isHide
{
self.placeholder.hidden = isHide;
self.label.hidden = !isHide;
self.imageView.hidden = !isHide;
}
-(void) relayoutChildControlsWithTopicName:(NSString*)topicName;
{
if (!topicName) {
//如果没有值就显示placeholder隐藏其他控件
//[self hidePlaceholder:NO];
self.indicatorView.hidden = NO;
self.imageView.image = UMComImageWithImageName(@"um_edit_#_normal");
self.label.text = UMComLocalizedString(@"um_com_selectTopicView_prompt", @"所属话题");
self.label.textColor = UMComColorWithHexString(@"#b5b5b5");
}
else if([topicName isEqualToString:@""])
{
//如果是空字符串,也隐藏其他控件
self.indicatorView.hidden = YES;
self.label.text = topicName;
self.label.textColor = UMComColorWithHexString(@"#b5b5b5");
//[self hidePlaceholder:NO];
}
else
{
self.indicatorView.hidden = YES;
self.imageView.image = UMComImageWithImageName(@"um_edit_#_highlight");
//如果有值就隐藏placeholder显示其他控件
self.label.text = topicName;
self.label.textColor = UMComColorWithHexString(@"#008bea");
//[self hidePlaceholder:YES];
}
[self doRelayoutChildControlsWithFrame:self.bounds];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches
withEvent:(UIEvent *)event
{
if (self.isDimed) {
return;
}
if (YES) {
self.backgroundColor = [UIColor lightGrayColor];
}
}
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event
{
if (self.isDimed) {
return;
}
if (YES) {
if (self.locationbackgroudColor) {
self.backgroundColor = self.locationbackgroudColor;
}
else{
self.backgroundColor = [UIColor whiteColor];
}
}}
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event
{
if (self.isDimed) {
return;
}
if (YES) {
if (self.locationbackgroudColor) {
self.backgroundColor = self.locationbackgroudColor;
}
else{
self.backgroundColor = [UIColor whiteColor];
}
}
}
-(void)handleTapGesture:(UIGestureRecognizer*)gestureRecognizer
{
if (self.seletctedTopicBlock) {
self.seletctedTopicBlock();
}
}
@end