首页 > 代码库 > 山寨凤凰新闻菜单效果
山寨凤凰新闻菜单效果
山寨凤凰新闻菜单效果
效果图:
山寨来源:
LiveScaleLabel.h 与 LiveScaleLabel.m
//// LiveScaleLabel.h// ShowLabel//// Created by XianMingYou on 15/1/26.// Copyright (c) 2015年 XianMingYou. All rights reserved.//#import <UIKit/UIKit.h>@interface LiveScaleLabel : UIView@property (nonatomic) CGFloat beginScaleValue;@property (nonatomic) CGFloat endScaleValue;@property (nonatomic, strong) UIColor *normalStateColor;@property (nonatomic, strong) UIColor *maxStateColor;@property (nonatomic, strong) NSString *text;@property (nonatomic, strong) UIFont *font;@property (nonatomic) CGFloat sensitiveValue; // 敏感的值@property (nonatomic) CGFloat currentValue; // 当前值- (void)buildView;- (void)accessCurrentValue:(CGFloat)currentValue;@end
//// LiveScaleLabel.m// ShowLabel//// Created by XianMingYou on 15/1/26.// Copyright (c) 2015年 XianMingYou. All rights reserved.//#import "LiveScaleLabel.h"@interface LiveScaleLabel ()@property (nonatomic, strong) UILabel *label;@property (nonatomic, strong) UIView *snapView;@property (nonatomic, strong) UILabel *maxLabel;@end@implementation LiveScaleLabel- (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { [self setUpLabelWithFrame:self.bounds]; } return self;}- (void)setUpLabelWithFrame:(CGRect)frame { self.label = [[UILabel alloc] initWithFrame:frame]; self.label.textAlignment = NSTextAlignmentCenter; self.maxLabel = [[UILabel alloc] initWithFrame:frame]; self.maxLabel.textAlignment = NSTextAlignmentCenter;}- (void)buildView { UIColor *normalStateColor = (self.normalStateColor == nil ? [UIColor blackColor] : self.normalStateColor); UIColor *maxStateColor = (self.maxStateColor == nil ? [UIColor redColor] : self.maxStateColor); UIFont *font = (self.font == nil ? [UIFont systemFontOfSize:16.f] : self.font); NSString *text = (self.text == nil ? @"" : self.text); // 设置基本样式 self.label.text = text; self.label.textColor = normalStateColor; self.label.font = font; self.maxLabel.text = text; self.maxLabel.textColor = maxStateColor; self.maxLabel.font = font; // 截图 [self addSubview:self.label]; [self addSubview:self.maxLabel]; // 设定起始状态值 [self accessCurrentValue:self.currentValue];}- (void)accessCurrentValue:(CGFloat)currentValue { CGFloat beginScaleValue = (self.beginScaleValue <= 0 ? 1.f : self.beginScaleValue); CGFloat endScaleValue = (self.endScaleValue <= 0 ? 1.f : self.endScaleValue); CGFloat sensitiveValue = (self.sensitiveValue <= 0 ? 320 : self.sensitiveValue); CGFloat percent = currentValue / sensitiveValue; if (percent >= 1) { percent = 1; } else if (percent <= 0) { percent = 0; } self.transform = CGAffineTransformMake(beginScaleValue + percent * endScaleValue, 0, 0, beginScaleValue + percent * endScaleValue, 0, 0); self.maxLabel.alpha = percent; self.label.alpha = 1 - percent;}@end
//// ViewController.m// ShowLabel//// Created by XianMingYou on 15/1/26.// Copyright (c) 2015年 XianMingYou. All rights reserved.//#import "ViewController.h"#import "LiveScaleLabel.h"@interface ViewController ()<UIScrollViewDelegate>@property (nonatomic, strong) UIScrollView *scrollView;@property (nonatomic, strong) LiveScaleLabel *liveLabelLeft;@property (nonatomic, strong) LiveScaleLabel *liveLabelRight;@property (nonatomic, strong) UIView *lineView;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor blackColor]; // 左侧view self.liveLabelLeft = [[LiveScaleLabel alloc] initWithFrame:CGRectMake(0, 300, 160, 30)]; self.liveLabelLeft.normalStateColor = [UIColor grayColor]; self.liveLabelLeft.text = @"YouXianMing"; self.liveLabelLeft.endScaleValue = 0.2; self.liveLabelLeft.sensitiveValue = 320; [self.liveLabelLeft buildView]; [self.liveLabelLeft accessCurrentValue:320]; [self.view addSubview:self.liveLabelLeft]; // 右侧view self.liveLabelRight = [[LiveScaleLabel alloc] initWithFrame:CGRectMake(160, 300, 160, 30)]; self.liveLabelRight.text = @"NoZuoNoDie"; self.liveLabelRight.normalStateColor = [UIColor grayColor]; self.liveLabelRight.maxStateColor = [UIColor cyanColor]; self.liveLabelRight.endScaleValue = 0.2; self.liveLabelRight.sensitiveValue = 320; [self.liveLabelRight buildView]; [self.view addSubview:self.liveLabelRight]; self.scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds]; self.scrollView.delegate = self; self.scrollView.pagingEnabled = YES; self.scrollView.showsHorizontalScrollIndicator = NO; self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * 2, self.scrollView.frame.size.height); [self.view addSubview:self.scrollView]; // 线条view self.lineView = [[UIView alloc] initWithFrame:CGRectMake(0, 300 + 30, 160, 1)]; UIView *backView = [[UIView alloc] initWithFrame:CGRectMake(20, 0, 120, 1)]; backView.backgroundColor = [UIColor yellowColor]; [self.lineView addSubview:backView]; [self.view addSubview:self.lineView];}- (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat x = scrollView.contentOffset.x; [self.liveLabelLeft accessCurrentValue:320 - x]; [self.liveLabelRight accessCurrentValue:x]; CGRect rect = self.lineView.frame; rect.origin.x = x / 2.f; self.lineView.frame = rect;}@end
山寨凤凰新闻菜单效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。