133 lines
6.0 KiB
Objective-C
133 lines
6.0 KiB
Objective-C
//
|
|
// UMComMunueControlView.m
|
|
// UMCommunity
|
|
//
|
|
// Created by umeng on 15/7/13.
|
|
// Copyright (c) 2015年 Umeng. All rights reserved.
|
|
//
|
|
|
|
#import "UMComMenuControlView.h"
|
|
#import "UMComResouceDefines.h"
|
|
#import <UMComFoundation/UMComKit+Color.h>
|
|
|
|
@interface UMComMenuControlView ()
|
|
|
|
@property (nonatomic, strong) UIImageView *scrollImageView;
|
|
|
|
@end
|
|
|
|
@implementation UMComMenuControlView
|
|
|
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
{
|
|
self = [super initWithFrame:frame];
|
|
if (self) {
|
|
self.scrollImageHeight = 5;
|
|
CGFloat noticeViewWidth = 8.6;
|
|
self.backgroundColor = [UIColor whiteColor];
|
|
CGFloat buttonHeight = frame.size.height - self.scrollImageHeight;
|
|
CGFloat buttonWidth = self.frame.size.width/2;
|
|
UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
leftButton.frame = CGRectMake(0, 2, buttonWidth, buttonHeight);
|
|
[leftButton addTarget:self action:@selector(clikOnLeftButton:) forControlEvents:UIControlEventTouchUpInside];
|
|
[leftButton setTitle:UMComLocalizedString(@"um_com_myComment", @"我的评论") forState:UIControlStateNormal];
|
|
leftButton.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth;
|
|
[self addSubview:leftButton];
|
|
leftButton.titleLabel.font = UMComFontNotoSansLightWithSafeSize(16);
|
|
self.leftButton = leftButton;
|
|
self.leftNotiView = [self createNoticeViewWithFrame:CGRectMake(leftButton.frame.size.width-30, noticeViewWidth/2, noticeViewWidth, noticeViewWidth)];
|
|
[self.leftButton addSubview:self.leftNotiView];
|
|
|
|
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
rightButton.frame = CGRectMake(self.frame.size.width/2, 2, buttonWidth, buttonHeight);
|
|
[rightButton addTarget:self action:@selector(clikOnRightButton:) forControlEvents:UIControlEventTouchUpInside];
|
|
[rightButton setTitle:UMComLocalizedString(@"um_com_commentMe", @"评论我的") forState:UIControlStateNormal];
|
|
rightButton.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
|
|
rightButton.titleLabel.font = UMComFontNotoSansLightWithSafeSize(16);
|
|
[self addSubview:rightButton];
|
|
self.rightButton = rightButton;
|
|
self.rightNoticeView = [self createNoticeViewWithFrame:CGRectMake(leftButton.frame.size.width-30, noticeViewWidth/2, noticeViewWidth, noticeViewWidth)];
|
|
[self.rightButton addSubview:self.rightNoticeView];
|
|
|
|
UIView *bottomLineView = [[UIView alloc]initWithFrame:CGRectMake(0, self.frame.size.height-0.5, self.frame.size.width, 0.5)];
|
|
bottomLineView.backgroundColor = UMComColorWithHexString(FontColorBlue);
|
|
[self addSubview:bottomLineView];
|
|
bottomLineView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
|
|
self.bottomLineView = bottomLineView;
|
|
|
|
self.scrollImageView = [[UIImageView alloc]initWithFrame:CGRectMake(leftButton.frame.origin.x, frame.size.height-self.scrollImageHeight, leftButton.frame.size.width, self.scrollImageHeight)];
|
|
self.scrollImageView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
|
|
self.scrollImageView.image = UMComImageWithImageName(@"selected");
|
|
[self addSubview:self.scrollImageView];
|
|
|
|
[self clikOnLeftButton:self.leftButton];
|
|
self.autoresizingMask = UIViewAutoresizingFlexibleWidth;
|
|
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)setScrollImageHeight:(CGFloat)scrollImageHeight
|
|
{
|
|
_scrollImageHeight = scrollImageHeight;
|
|
self.scrollImageView.frame = CGRectMake(self.scrollImageView.frame.origin.x, self.frame.size.height - self.scrollImageHeight, self.scrollImageView.frame.size.width, scrollImageHeight);
|
|
}
|
|
|
|
- (void)setBottomLineHeight:(CGFloat)bottomLineHeight
|
|
{
|
|
_bottomLineHeight = bottomLineHeight;
|
|
self.bottomLineView.frame = CGRectMake(self.bottomLineView.frame.origin.x, self.frame.size.height-self.bottomLineHeight, self.bottomLineView.frame.size.width, bottomLineHeight);
|
|
}
|
|
|
|
- (UIView *)createNoticeViewWithFrame:(CGRect)frame
|
|
{
|
|
UIView *view =[[UIView alloc]initWithFrame:frame];
|
|
view.backgroundColor = [UIColor redColor];
|
|
view.layer.cornerRadius = frame.size.width/2;
|
|
view.clipsToBounds = YES;
|
|
view.hidden = YES;
|
|
return view;
|
|
}
|
|
|
|
|
|
- (void)clikOnLeftButton:(UIButton *)sender
|
|
{
|
|
__weak typeof(self) weakSelf = self;
|
|
[sender setTitleColor:UMComColorWithHexString(FontColorBlue) forState:UIControlStateNormal];
|
|
[self.rightButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
|
|
[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
|
|
weakSelf.scrollImageView.frame = CGRectMake(sender.frame.origin.x, weakSelf.scrollImageView.frame.origin.y, weakSelf.scrollImageView.frame.size.width, weakSelf.scrollImageView.frame.size.height);
|
|
} completion:^(BOOL finished) {
|
|
|
|
}];
|
|
if (self.SelectedIndex) {
|
|
self.SelectedIndex(0);
|
|
}
|
|
}
|
|
|
|
- (void)clikOnRightButton:(UIButton *)sender
|
|
{
|
|
[sender setTitleColor:UMComColorWithHexString(FontColorBlue) forState:UIControlStateNormal];
|
|
[self.leftButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
|
|
__weak typeof(self) weakSelf = self;
|
|
[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
|
|
weakSelf.scrollImageView.frame = CGRectMake(sender.frame.origin.x, weakSelf.scrollImageView.frame.origin.y, weakSelf.scrollImageView.frame.size.width, weakSelf.scrollImageView.frame.size.height);
|
|
} completion:^(BOOL finished) {
|
|
|
|
}];
|
|
if (self.SelectedIndex) {
|
|
self.SelectedIndex(1);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
// Only override drawRect: if you perform custom drawing.
|
|
// An empty implementation adversely affects performance during animation.
|
|
- (void)drawRect:(CGRect)rect {
|
|
// Drawing code
|
|
}
|
|
*/
|
|
|
|
@end
|