方向控制功能

This commit is contained in:
kai60
2021-05-10 10:51:06 +08:00
parent 38c2a62dfc
commit dd3acff62a
82 changed files with 3084 additions and 11 deletions
+40
View File
@@ -0,0 +1,40 @@
//
// ELPCircleConsoleView.h
// ELPCircleConsoleViewTest
//
// Created by ElsonPeng on 2018/3/2.
// Copyright © 2018年 ElsonPeng. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSUInteger, ELPCircleConsoleMoveDirection) {
ELPCircleConsoleMoveDirectionUp,
ELPCircleConsoleMoveDirectionDown,
ELPCircleConsoleMoveDirectionLeft,
ELPCircleConsoleMoveDirectionRight,
ELPCircleConsoleMoveDirectionNone,
ELPCircleConsoleMoveDirectionStop,
ELPCircleConsoleMoveDirectionLeftStop,
ELPCircleConsoleMoveDirectionRightStop,
ELPCircleConsoleMoveDirectionUpStop,
ELPCircleConsoleMoveDirectionDownStop
};
@class ELPCircleConsoleView;
@protocol ELPCircleConsoleMoveDelegate <NSObject>
@optional
- (void)rotateCircleView:(ELPCircleConsoleView *)rotetaCircleView didRotateWithValueX:(NSString *)Xstr valueY:(NSString *)Ystr stop:(BOOL)needStop moveDirection:(ELPCircleConsoleMoveDirection)orientation;
@end
@interface ELPCircleConsoleView : UIView
@property (nonatomic, weak) id <ELPCircleConsoleMoveDelegate>delegate;
@property (nonatomic, assign) BOOL isPortrait;
-(instancetype)initWithOritention:(BOOL)isProtrait;
@end
+493
View File
@@ -0,0 +1,493 @@
//
// ELPCircleConsoleView.m
// ELPCircleConsoleViewTest
//
// Created by ElsonPeng on 2018/3/2.
// Copyright © 2018年 ElsonPeng. All rights reserved.
//
#import "ELPCircleConsoleView.h"
#import "UIView+Sizes.h"
@interface ELPCircleConsoleView ()
@property (nonatomic, strong) UIImageView *consoleBGImageView;
@property (nonatomic, strong) UIButton *rotateButton; // 旋转按钮
@property (nonatomic, strong) UIView *traceView; // 旋转轨迹
@property (nonatomic, assign) ELPCircleConsoleMoveDirection direction;
@property (nonatomic, assign) ELPCircleConsoleMoveDirection preDirection;
@property (nonatomic, assign) CGPoint tempPoint;
@property (nonatomic, assign) CGFloat deltaRadius;
//图片相关
@property (nonatomic, strong) UIImage *rotateBackgroundImage_normal;
@property (nonatomic, strong) UIImage *rotateBackgroundImage_active_up;
@property (nonatomic, strong) UIImage *rotateBackgroundImage_active_down;
@property (nonatomic, strong) UIImage *rotateBackgroundImage_active_left;
@property (nonatomic, strong) UIImage *rotateBackgroundImage_active_right;
@property (nonatomic, strong) UIImage *rotateCenterButtonImage_normal;
@property (nonatomic, strong) UIImage *rotateCenterButtonImage_active;
@end
@implementation ELPCircleConsoleView{
ELPCircleConsoleMoveDirection currentDirection;
CGPoint currentPoint;
NSOperationQueue *queue;
CGFloat centerViewX;
CGFloat centerViewY;
NSInteger xAxisSpeed;
NSInteger yAxisSpeed;
NSInteger initxAxisSpeed;
NSInteger inityAxisSpeed;
CGFloat timeInterval;
//判断当前是不是正在发送stop指令
BOOL isSendOnlyStopCmd;
}
-(instancetype)init{
return [self initWithOritention:YES];
}
-(instancetype)initWithOritention:(BOOL)isProtrait {
self = [super init];
if (self) {
self.isPortrait = isProtrait;
self.consoleBGImageView = [[UIImageView alloc] init];
self.consoleBGImageView.userInteractionEnabled = YES;
[self addSubview:self.consoleBGImageView];
self.rotateButton = [[UIButton alloc] init];
self.rotateButton.adjustsImageWhenHighlighted = NO;
[self.rotateButton addTarget:self action:@selector(rotateButtonImgChange) forControlEvents:UIControlEventTouchDown];
[self addSubview:self.rotateButton];
// 运动轨迹view
self.traceView = [[UIView alloc] init];
[self addSubview:self.traceView];
self.consoleBGImageView.image = self.rotateBackgroundImage_normal;
[self.rotateButton setImage:self.rotateCenterButtonImage_normal forState:UIControlStateNormal];
[self.rotateButton setImage:_rotateCenterButtonImage_active forState:UIControlStateHighlighted];
self.rotateButton.size = self.rotateCenterButtonImage_normal.size;
// 添加拖动手势
UIPanGestureRecognizer *panPressGes = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveInCircle:)];
panPressGes.minimumNumberOfTouches = 0.1;
[self.rotateButton addGestureRecognizer:panPressGes];
}
return self;
}
-(void) rotateButtonImgChange {
}
- (void)layoutSubviews {
[super layoutSubviews];
_preDirection =ELPCircleConsoleMoveDirectionNone;
self.consoleBGImageView.left = 0;
self.consoleBGImageView.top = 0;
self.rotateButton.centerX = self.consoleBGImageView.centerX;
self.rotateButton.centerY = self.consoleBGImageView.centerY;
self.traceView.centerX = self.consoleBGImageView.centerX;
self.traceView.centerY = self.consoleBGImageView.centerY;
CGFloat radiusBig = ( self.consoleBGImageView.width + self.consoleBGImageView.height ) * 0.5 * 0.5;
CGFloat radiusSmall = (self.rotateButton.width + self.rotateButton.height) * 0.5 * 0.5;
self.deltaRadius = (radiusBig - radiusSmall) * (radiusBig - radiusSmall);
centerViewX = self.rotateButton.centerX;
centerViewY = self.rotateButton.centerY;
xAxisSpeed = 50;
yAxisSpeed = 20;
timeInterval = 0.3;
}
#pragma mark - 在触摸方面开发时,只针对touches进行处理
#pragma mark - 触摸开始 在一次触摸事件中 只会执行一次
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint currentP = [touch locationInView:self];
_tempPoint = currentP;
[UIView animateWithDuration:0.3 animations:^{
[self rotateLocation:currentP];
}];
}
#pragma mark - 触摸移动  在一次触摸事件中会执行多次
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
//要知道手指触摸的位置
CGPoint pLocation = [touch locationInView:self];
//对位置进行修正
[self rotateLocation:pLocation];
}
-(void)rotateLocation:(CGPoint)pLocation {
if([self IfYuntaiViewIsIntheBigView:pLocation]){
self.rotateButton.center = CGPointMake(pLocation.x, pLocation.y);
CGPoint tranPoint = CGPointMake(pLocation.x - centerViewX, pLocation.y - centerViewY);
ELPCircleConsoleMoveDirection direction = [self determineCameraDirection:tranPoint];
currentDirection = direction;
} else {
CGFloat radius = self.traceView.size.width * 0.5;
CGPoint pointc = self.consoleBGImageView.center;
CGPoint changePoint = [self CirclePoint:radius withCenterCircle:pointc withCurrentPoint:pLocation];
self.rotateButton.center = CGPointMake(changePoint.x, changePoint.y);
CGPoint tranPoint = CGPointMake(changePoint.x - centerViewX, changePoint.y - centerViewY);
ELPCircleConsoleMoveDirection direction = [self determineCameraDirection:tranPoint];
currentDirection = direction;
}
CGFloat xValue = fabs(self.rotateButton.centerX - centerViewX);
CGFloat yValue = fabs(self.rotateButton.centerY - centerViewY);
CGFloat currentRadiusValue = xValue * xValue + yValue * yValue;
CGFloat bgImgRadiusWith = self.consoleBGImageView.width * 0.5 * 0.5;
if(currentRadiusValue > bgImgRadiusWith * bgImgRadiusWith * 0.6) {
[self sendRotateButtonRotateCmd];
} else {
[self resumBackgroundImgToNormal];
}
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[self.consoleBGImageView setImage:self.rotateBackgroundImage_normal];
[UIView animateWithDuration:0.1f delay:0.1f options:UIViewAnimationOptionAllowUserInteraction animations:^{
self.rotateButton.center = CGPointMake(self.consoleBGImageView.centerX, self.consoleBGImageView.centerY);
} completion:nil];
[self.rotateButton setImage:self.rotateCenterButtonImage_normal forState:UIControlStateNormal];
self.rotateButton.highlighted = NO;
_preDirection =ELPCircleConsoleMoveDirectionNone;
if (self.delegate && [self.delegate respondsToSelector:@selector(rotateCircleView:didRotateWithValueX:valueY:stop:moveDirection:)]) {
[self.delegate rotateCircleView:self didRotateWithValueX:nil valueY:nil stop:YES moveDirection:ELPCircleConsoleMoveDirectionStop];
}
isSendOnlyStopCmd = YES;
}
- (void)rotateButtonClickedCancel {
_preDirection =ELPCircleConsoleMoveDirectionNone;
if (self.delegate && [self.delegate respondsToSelector:@selector(rotateCircleView:didRotateWithValueX:valueY:stop:moveDirection:)]) {
[self.delegate rotateCircleView:self didRotateWithValueX:nil valueY:nil stop:YES moveDirection:ELPCircleConsoleMoveDirectionStop];
}
isSendOnlyStopCmd = YES;
[self.rotateButton setImage:self.rotateCenterButtonImage_normal forState:UIControlStateNormal];
[self.consoleBGImageView setImage:self.rotateBackgroundImage_normal];
self.rotateButton.centerX = self.consoleBGImageView.centerX;
self.rotateButton.centerY = self.consoleBGImageView.centerY;
}
- (void)moveInCircle:(UIPanGestureRecognizer *)gesture {
if (gesture.state == UIGestureRecognizerStateEnded) {
[self rotateButtonClickedCancel];
} else if (gesture.state == UIGestureRecognizerStateChanged) {
CGPoint translation = [gesture translationInView:self];
CGPoint locationP = [gesture locationInView:self];
ELPCircleConsoleMoveDirection direction = [self determineCameraDirection:translation];
currentPoint = translation;
currentDirection = direction;
//判断当前内部 云台 旋转 是否在大圆范围内
if([self IfYuntaiViewIsIntheBigView:locationP]) {
self.rotateButton.centerX = locationP.x;
self.rotateButton.centerY = locationP.y;
} else {
CGFloat radius = self.traceView.size.width * 0.5;
CGPoint pointc = self.consoleBGImageView.center;
CGPoint changePoint = [self CirclePoint:radius withCenterCircle:pointc withCurrentPoint:locationP];
self.rotateButton.centerX = changePoint.x;
self.rotateButton.centerY = changePoint.y;
}
CGFloat xValue = fabs(self.rotateButton.centerX - centerViewX);
CGFloat yValue = fabs(self.rotateButton.centerY - centerViewY);
CGFloat currentRadiusValue = xValue * xValue + yValue * yValue;
CGFloat bgImgRadiusWith = self.consoleBGImageView.width * 0.5 * 0.5;
if(currentRadiusValue > bgImgRadiusWith * bgImgRadiusWith * 0.6) {
[self sendRotateButtonRotateCmd];
} else {
[self resumBackgroundImgToNormal];
}
} else if (gesture.state == UIGestureRecognizerStateBegan) {
[self.rotateButton setImage:self.rotateCenterButtonImage_active forState:UIControlStateNormal];
}
}
-(void)setConsoleBackgroundImage {
if(currentDirection ==ELPCircleConsoleMoveDirectionUp) {
[self.consoleBGImageView setImage:self.rotateBackgroundImage_active_up];
} else if(currentDirection ==ELPCircleConsoleMoveDirectionDown) {
[self.consoleBGImageView setImage:self.rotateBackgroundImage_active_down];
} else if(currentDirection ==ELPCircleConsoleMoveDirectionLeft) {
[self.consoleBGImageView setImage:self.rotateBackgroundImage_active_left];
} else if(currentDirection ==ELPCircleConsoleMoveDirectionRight) {
[self.consoleBGImageView setImage:self.rotateBackgroundImage_active_right];
}
}
-(BOOL)IfYuntaiViewIsIntheBigView:(CGPoint)mPoint {
CGFloat delX = fabs(mPoint.x - centerViewX);
CGFloat delY = fabs(mPoint.y - centerViewY);
if((delX * delX + delY * delY) < self.deltaRadius) {
return YES;
}
return NO;
}
-(void)sendRotateButtonRotateCmd {
[self setConsoleBackgroundImage];
xAxisSpeed = initxAxisSpeed;
yAxisSpeed = inityAxisSpeed;
NSString *xPositive = [NSString stringWithFormat:@"%ld",(long)xAxisSpeed];
NSString *xNegative = [NSString stringWithFormat:@"%ld",-(long)xAxisSpeed];
NSString *yPositive = [NSString stringWithFormat:@"%ld",(long)yAxisSpeed];
NSString *yNegative = [NSString stringWithFormat:@"%ld",-(long)yAxisSpeed];
isSendOnlyStopCmd = NO;
if(currentDirection ==ELPCircleConsoleMoveDirectionRight) {
//直接向右转动
if(_preDirection == currentDirection || _preDirection ==ELPCircleConsoleMoveDirectionNone) {
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(rotateCircleView:didRotateWithValueX:valueY:stop:moveDirection:)]) {
[self.delegate rotateCircleView:self didRotateWithValueX:xPositive valueY:@"0" stop:NO moveDirection:ELPCircleConsoleMoveDirectionRight];
}
}
//前一个方向停止,向右转动
else {
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(rotateCircleView:didRotateWithValueX:valueY:stop:moveDirection:)]) {
[self.delegate rotateCircleView:self didRotateWithValueX:xPositive valueY:@"0" stop:YES moveDirection:ELPCircleConsoleMoveDirectionRightStop];
}
}
} else if(currentDirection ==ELPCircleConsoleMoveDirectionUp) {
if(_preDirection == currentDirection || _preDirection ==ELPCircleConsoleMoveDirectionNone) {
if (self.delegate && [self.delegate respondsToSelector:@selector(rotateCircleView:didRotateWithValueX:valueY:stop:moveDirection:)]) {
[self.delegate rotateCircleView:self didRotateWithValueX:@"0" valueY:yPositive stop:NO moveDirection:ELPCircleConsoleMoveDirectionUp];
}
} else {
if (self.delegate && [self.delegate respondsToSelector:@selector(rotateCircleView:didRotateWithValueX:valueY:stop:moveDirection:)]) {
[self.delegate rotateCircleView:self didRotateWithValueX:@"0" valueY:yPositive stop:YES moveDirection:ELPCircleConsoleMoveDirectionUpStop];
}
}
} else if(currentDirection ==ELPCircleConsoleMoveDirectionLeft) {
if(_preDirection == currentDirection || _preDirection ==ELPCircleConsoleMoveDirectionNone) {
if (self.delegate && [self.delegate respondsToSelector:@selector(rotateCircleView:didRotateWithValueX:valueY:stop:moveDirection:)]) {
[self.delegate rotateCircleView:self didRotateWithValueX:xNegative valueY:@"0" stop:NO moveDirection:ELPCircleConsoleMoveDirectionLeft];
}
} else {
if (self.delegate && [self.delegate respondsToSelector:@selector(rotateCircleView:didRotateWithValueX:valueY:stop:moveDirection:)]) {
[self.delegate rotateCircleView:self didRotateWithValueX:xNegative valueY:@"0" stop:YES moveDirection:ELPCircleConsoleMoveDirectionLeftStop];
}
}
} else if(currentDirection ==ELPCircleConsoleMoveDirectionDown) {
if(_preDirection == currentDirection || _preDirection ==ELPCircleConsoleMoveDirectionNone) {
if (self.delegate && [self.delegate respondsToSelector:@selector(rotateCircleView:didRotateWithValueX:valueY:stop:moveDirection:)]) {
[self.delegate rotateCircleView:self didRotateWithValueX:@"0" valueY:yNegative stop:NO moveDirection:ELPCircleConsoleMoveDirectionDown];
}
} else {
if (self.delegate && [self.delegate respondsToSelector:@selector(rotateCircleView:didRotateWithValueX:valueY:stop:moveDirection:)]) {
[self.delegate rotateCircleView:self didRotateWithValueX:@"0" valueY:yNegative stop:YES moveDirection:ELPCircleConsoleMoveDirectionDownStop];
}
}
}
_preDirection = currentDirection;
}
-(void)resumBackgroundImgToNormal {
[self.consoleBGImageView setImage:self.rotateBackgroundImage_normal];
}
// 获取 当前拖动的点于圆心构成的直线 和运动轨迹圆的相交点
- (CGPoint)CirclePoint:(CGFloat)radius withCenterCircle:(CGPoint)centerCircle withCurrentPoint:(CGPoint)curPoint {
CGPoint cPoint;
CGFloat x = curPoint.x;
CGFloat y = curPoint.y;
//圆的X坐标轨迹
CGFloat cX ;
//圆的Y坐标轨迹
CGFloat cY ;
// 圆心到转动按钮的距离的平方
CGFloat daX;
// 圆心到转动按钮的距离
CGFloat aX;
// 圆心水平方向与转动按钮形成的夹角的cos值
CGFloat cosX;
// 圆心与触控点的距离的平方(勾股定理)
daX = (x - centerCircle.x)*(x - centerCircle.x) + (y - centerCircle.y)*(y - centerCircle.y);
aX = sqrt(daX); //开根号 //圆心与触控点的距离
cosX = fabs(x - centerCircle.x)/aX; //绝对值
cX = cosX * radius; // x =R * cosX; 圆心到触控点在水平坐标的X的值
cY = sqrt(radius * radius - cX * cX);
if(x < centerCircle.x){ //如果X所在的点小于圆心 在圆心的左边
cX = centerCircle.x - cX;
}else{
cX = centerCircle.x + cX;
}
if(y < centerCircle.y){
cY = centerCircle.y - cY;
}else{
cY = centerCircle.y + cY;
}
cPoint.x = cX;
cPoint.y = cY;
return cPoint;
}
// 根据拖动时候的偏移确定摄像头的移动方向
- (ELPCircleConsoleMoveDirection)determineCameraDirection:(CGPoint)translation {
if (translation.y == 0.0 || fabs(translation.x / translation.y) >= 1.0){
if (translation.x > 0.0 ){
_direction =ELPCircleConsoleMoveDirectionRight;
}else{
_direction =ELPCircleConsoleMoveDirectionLeft;
}
} else if (translation.x == 0.0 || fabs(translation.y / translation.x) >= 1.0){
if (translation.y > 0.0 ){
_direction =ELPCircleConsoleMoveDirectionDown;
}else{
_direction =ELPCircleConsoleMoveDirectionUp;
}
}
return _direction;
}
-(void)dealloc{
NSLog(@"ELPCircleConsole dealloc");
}
-(UIImage *)imageByInchesWithName:(NSString *)imageName{
if (!imageName) {
return [UIImage new];
}
return [UIImage imageNamed:[NSString stringWithFormat:@"%@",imageName]];
}
#pragma mark - setter & getter
-(void)setFrame:(CGRect)frame{
[super setFrame:frame];
self.consoleBGImageView.frame = self.bounds;
self.consoleBGImageView.size = self.size;
self.rotateButton.size = self.rotateCenterButtonImage_normal.size;
self.traceView.size = (CGSize){self.consoleBGImageView.width - self.rotateButton.width-10,self.consoleBGImageView.height - self.rotateButton.height-10};
}
-(void)setIsPortrait:(BOOL)isPortrait{
_isPortrait = isPortrait;
if (self.consoleBGImageView) {
self.consoleBGImageView.image = self.rotateBackgroundImage_normal;
}
if (self.rotateButton) {
[self.rotateButton setImage:self.rotateCenterButtonImage_normal forState:UIControlStateNormal];
[self.rotateButton setImage:_rotateCenterButtonImage_active forState:UIControlStateHighlighted];
self.rotateButton.size = self.rotateCenterButtonImage_normal.size;
}
if (self.traceView) {
self.traceView.size = (CGSize){self.consoleBGImageView.width - self.rotateButton.width,self.consoleBGImageView.height - self.rotateButton.height};
}
}
//中间操作台控制背景图片
-(UIImage *)rotateBackgroundImage_normal {
if (!_rotateBackgroundImage_normal) {
return [self imageByInchesWithName:self.isPortrait?@"equipment_iocn_joystick.png":@"equipment_iocn_joystick.png"];
}
return _rotateBackgroundImage_normal;
}
-(UIImage *)rotateBackgroundImage_active_up {
if (!_rotateBackgroundImage_active_up) {
return [self imageByInchesWithName:self.isPortrait?@"equipment_iocn_joystick":@"equipment_iocn_joystick"];
}
return _rotateBackgroundImage_active_up;
}
-(UIImage *)rotateBackgroundImage_active_down {
if (!_rotateBackgroundImage_active_down) {
return [self imageByInchesWithName:self.isPortrait?@"equipment_iocn_joystick":@"equipment_iocn_joystick"];
}
return _rotateBackgroundImage_active_down;
}
-(UIImage *)rotateBackgroundImage_active_left {
if (!_rotateBackgroundImage_active_left) {
return [self imageByInchesWithName:self.isPortrait?@"equipment_iocn_joystick":@"equipment_iocn_joystick"];
}
return _rotateBackgroundImage_active_left;
}
-(UIImage *)rotateBackgroundImage_active_right {
if (!_rotateBackgroundImage_active_right) {
return [self imageByInchesWithName:self.isPortrait?@"equipment_iocn_joystick":@"equipment_iocn_joystick"];
}
return _rotateBackgroundImage_active_right;
}
-(UIImage *)rotateCenterButtonImage_normal {
if (!_rotateCenterButtonImage_normal) {
return [self imageByInchesWithName:self.isPortrait?@"roundBall":@"roundBall"];
}
return _rotateCenterButtonImage_normal;
}
-(UIImage *)rotateCenterButtonImage_active {
if (!_rotateCenterButtonImage_active) {
return [self imageByInchesWithName:self.isPortrait?@"roundBall":@"roundBall"];
}
return _rotateCenterButtonImage_active;
}
+(UIImage *)colorizeImage:(UIImage *)baseImage withColor:(UIColor *)theColor {
if (theColor == nil) {
theColor = [UIColor whiteColor];
}
CGRect rect = CGRectMake(0, 0, baseImage.size.width* baseImage.scale, baseImage.size.height* baseImage.scale);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClipToMask(context, rect, baseImage.CGImage);
CGContextSetFillColorWithColor(context, [theColor CGColor]);
CGContextFillRect(context, rect);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImage *flippedImage = [UIImage imageWithCGImage:img.CGImage scale:baseImage.scale orientation: UIImageOrientationDownMirrored];
return flippedImage;
}
@end
@@ -0,0 +1,11 @@
K 25
svn:wc:ra_dav:version-url
V 166
/svn/tccloudvideo/!svn/ver/9524/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 180
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/Contents.json
END
@@ -0,0 +1,233 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-30T14:31:27.310147Z
9524
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
newly_landscape_rotateBackgroundImage_active_down_4_7.imageset
dir
newly_landscape_rotateBackgroundImage_normal_4.imageset
dir
newly_protrait_rotateBackgroundImage_normal_4_7.imageset
dir
newly_landscape_rotateCenterButtonImage_normal_5_5_en.imageset
dir
newly_landscape_rotateCenterButtonImage_active_4_7-1.imageset
dir
newly_landscape_rotateCenterButtonImage_normal_4_7_en.imageset
dir
newly_landscape_rotateCenterButtonImage_active-en_5_5.imageset
dir
newly_landscape_rotateBackgroundImage_active_right_5_5.imageset
dir
newly_landscape_rotateCenterButtonImage_active_4_7.imageset
dir
newly_protrait_rotateBackgroundImage_active_left_4.imageset
dir
newly_protrait_rotateCenterButtonImage_normal-en_4.imageset
dir
newly_protrait_rotateCenterButtonImage_normal_4.imageset
dir
newly_protrait_rotateBackgroundImage_active_down_4_7.imageset
dir
newly_landscape_rotateBackgroundImage_active_down_4.imageset
dir
newly_protrait_rotateBackgroundImage_normal_4.imageset
dir
newly_landscape_rotateBackgroundImage_active_up_4_7.imageset
dir
newly_protrait_rotateBackgroundImage_active_right_5_5.imageset
dir
newly_landscape_rotateCenterButtonImage_normal_4_en.imageset
dir
newly_protrait_rotateCenterButtonImage_active_4_7.imageset
dir
newly_landscape_rotateCenterButtonImage_active_4.imageset
dir
newly_landscape_rotateBackgroundImage_active_left_5_5.imageset
dir
newly_landscape_rotateCenterButtonImage_normal_5_5.imageset
dir
Contents.json
file
2018-01-29T02:36:59.000000Z
31cc68f34934a99c0b0c1bebde56309c
2017-10-25T09:41:14.985349Z
9434
pengcl1
62
newly_protrait_rotateBackgroundImage_active_down_4.imageset
dir
newly_landscape_rotateBackgroundImage_normal_5_5.imageset
dir
newly_protrait_rotateBackgroundImage_active_up_4_7.imageset
dir
newly_landscape_rotateBackgroundImage_active_up_4.imageset
dir
newly_protrait_rotateCenterButtonImage_active_4.imageset
dir
newly_protrait_rotateCenterButtonImage_normal_5_5.imageset
dir
newly_protrait_rotateCenterButtonImage_normal-en_5_5.imageset
dir
newly_protrait_rotateBackgroundImage_active_left_5_5.imageset
dir
newly_landscape_rotateBackgroundImage_active_down_5_5.imageset
dir
newly_protrait_rotateBackgroundImage_normal_5_5.imageset
dir
newly_protrait_rotateCollectionButtonImage_normal.imageset
dir
newly_protrait_rotateBackgroundImage_active_up_4.imageset
dir
newly_landscape_rotateCenterButtonImage_active_5_5.imageset
dir
newly_landscape_rotateCenterButtonImage_active-en_4_7.imageset
dir
newly_landscape_rotateBackgroundImage_active_right_4_7.imageset
dir
newly_protrait_rotateCollectionAddButtonImage_normal.imageset
dir
newly_protrait_rotateBackgroundImage_active_down_5_5.imageset
dir
newly_landscape_rotateBackgroundImage_active_up_5_5.imageset
dir
newly_protrait_rotateCenterButtonImage_active_5_5.imageset
dir
newly_landscape_rotateCenterButtonImage_active-en_4.imageset
dir
newly_landscape_rotateBackgroundImage_active_right_4.imageset
dir
newly_protrait_rotateBackgroundImage_active_right_4_7.imageset
dir
newly_protrait_rotateCollectionButtonImage_active.imageset
dir
newly_landscape_rotateCenterButtonImage_normal_4_7.imageset
dir
newly_landscape_rotateBackgroundImage_active_left_4_7.imageset
dir
newly_landscape_rotateBackgroundImage_normal_4_7.imageset
dir
newly_protrait_rotateBackgroundImage_active_up_5_5.imageset
dir
newly_protrait_rotateBackgroundImage_active_right_4.imageset
dir
newly_landscape_rotateCenterButtonImage_normal_4-1.imageset
dir
newly_protrait_rotateCollectionAddButtonImage_active.imageset
dir
newly_landscape_rotateCenterButtonImage_normal_4.imageset
dir
newly_landscape_rotateBackgroundImage_active_left_4.imageset
dir
newly_protrait_rotateBackgroundImage_active_left_4_7.imageset
dir
newly_protrait_rotateCenterButtonImage_normal-en_4_7.imageset
dir
newly_protrait_rotateCenterButtonImage_normal_4_7.imageset
dir
@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 229
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_down_5_5.imageset
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 243
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_down_5_5.imageset/Contents.json
END
but@3x.png
K 25
svn:wc:ra_dav:version-url
V 240
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_down_5_5.imageset/but@3x.png
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_down_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
Contents.json
file
2018-01-29T02:36:43.000000Z
98d5d41113fd0ca66806b21e8ccac722
2017-10-25T09:41:14.985349Z
9434
pengcl1
303
but@3x.png
file
2018-01-29T02:36:43.000000Z
25356155e0276d85d4b727d4db139b01
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
3638
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "but@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 229
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_left_5_5.imageset
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 243
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_left_5_5.imageset/Contents.json
END
left@3x.png
K 25
svn:wc:ra_dav:version-url
V 241
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_left_5_5.imageset/left@3x.png
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_left_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
Contents.json
file
2018-01-29T02:36:32.000000Z
3117ddba8d3bb38628ff6f7d11e53d09
2017-10-25T09:41:14.985349Z
9434
pengcl1
304
left@3x.png
file
2018-01-29T02:36:32.000000Z
f031039381ac5c4e21c3be6033deeb07
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
4954
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "left@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 230
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_right_5_5.imageset
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 244
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_right_5_5.imageset/Contents.json
END
right@3x.png
K 25
svn:wc:ra_dav:version-url
V 243
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_right_5_5.imageset/right@3x.png
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_right_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
Contents.json
file
2018-01-29T02:36:26.000000Z
6a08ef3ca4d31e9b94e65bc2e1d6e695
2017-10-25T09:41:14.985349Z
9434
pengcl1
305
right@3x.png
file
2018-01-29T02:36:26.000000Z
eae27332f18eb67699166c97812a4095
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
4466
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "right@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 227
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_up_5_5.imageset
END
top@3x.png
K 25
svn:wc:ra_dav:version-url
V 238
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_up_5_5.imageset/top@3x.png
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 241
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_up_5_5.imageset/Contents.json
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_active_up_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
top@3x.png
file
2018-01-29T02:36:49.000000Z
6f31e661dfbe4d75ad77f26947f8b20b
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
4398
Contents.json
file
2018-01-29T02:36:49.000000Z
2cdde6ce303ed153ea5c81cd86864d85
2017-10-25T09:41:14.985349Z
9434
pengcl1
303
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "top@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 224
/svn/tccloudvideo/!svn/ver/9521/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_normal_5_5.imageset
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 238
/svn/tccloudvideo/!svn/ver/9521/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_normal_5_5.imageset/Contents.json
END
bg@3x.png
K 25
svn:wc:ra_dav:version-url
V 234
/svn/tccloudvideo/!svn/ver/9521/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_normal_5_5.imageset/bg@3x.png
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateBackgroundImage_normal_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-30T14:25:00.182177Z
9521
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
Contents.json
file
2018-01-29T02:36:36.000000Z
91818e8b3d5ca802e067490382626433
2017-10-30T14:25:00.182177Z
9521
pengcl1
302
bg@3x.png
file
2018-01-29T02:36:36.000000Z
59cccbbaf6b7676c172812ae6f8c2775
2017-10-30T14:25:00.182177Z
9521
pengcl1
has-props
3931
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "bg@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 226
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateCenterButtonImage_active_5_5.imageset
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 240
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateCenterButtonImage_active_5_5.imageset/Contents.json
END
yt_btn@3x.png
K 25
svn:wc:ra_dav:version-url
V 240
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateCenterButtonImage_active_5_5.imageset/yt_btn@3x.png
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateCenterButtonImage_active_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
Contents.json
file
2018-01-29T02:36:45.000000Z
bb11ed56a815222e7a6e787ffbd97392
2017-10-25T09:41:14.985349Z
9434
pengcl1
306
yt_btn@3x.png
file
2018-01-29T02:36:45.000000Z
9373b26c75f8287309fdc23df7a7d377
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
4169
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "圆形 (2).png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 226
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateCenterButtonImage_normal_5_5.imageset
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 240
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateCenterButtonImage_normal_5_5.imageset/Contents.json
END
yt_btn@3x.png
K 25
svn:wc:ra_dav:version-url
V 240
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateCenterButtonImage_normal_5_5.imageset/yt_btn@3x.png
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_landscape_rotateCenterButtonImage_normal_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
Contents.json
file
2018-01-29T02:36:35.000000Z
bb11ed56a815222e7a6e787ffbd97392
2017-10-25T09:41:14.985349Z
9434
pengcl1
306
yt_btn@3x.png
file
2018-01-29T02:36:35.000000Z
9373b26c75f8287309fdc23df7a7d377
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
4169
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "圆形 (2).png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 225
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateCenterButtonImage_active_5_5.imageset
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 239
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateCenterButtonImage_active_5_5.imageset/Contents.json
END
ball@3x.png
K 25
svn:wc:ra_dav:version-url
V 237
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateCenterButtonImage_active_5_5.imageset/ball@3x.png
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateCenterButtonImage_active_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
Contents.json
file
2018-01-29T02:36:50.000000Z
86437884817941ef757293d251b0455f
2017-10-25T09:41:14.985349Z
9434
pengcl1
304
ball@3x.png
file
2018-01-29T02:36:50.000000Z
39efe6b3703c1ae9f04d5d4953beb1a6
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
13418
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "圆形.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 225
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateCenterButtonImage_normal_5_5.imageset
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 239
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateCenterButtonImage_normal_5_5.imageset/Contents.json
END
ball@3x.png
K 25
svn:wc:ra_dav:version-url
V 237
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateCenterButtonImage_normal_5_5.imageset/ball@3x.png
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateCenterButtonImage_normal_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
Contents.json
file
2018-01-29T02:36:43.000000Z
86437884817941ef757293d251b0455f
2017-10-25T09:41:14.985349Z
9434
pengcl1
304
ball@3x.png
file
2018-01-29T02:36:43.000000Z
39efe6b3703c1ae9f04d5d4953beb1a6
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
13418
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "圆形.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 228
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_down_5_5.imageset
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 242
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_down_5_5.imageset/Contents.json
END
yt_bg_left@3x.png
K 25
svn:wc:ra_dav:version-url
V 246
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_down_5_5.imageset/yt_bg_left@3x.png
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_down_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
Contents.json
file
2018-01-29T02:36:49.000000Z
07c1375d75b4e7e24c07d528d23494c1
2017-10-25T09:41:14.985349Z
9434
pengcl1
310
yt_bg_left@3x.png
file
2018-01-29T02:36:49.000000Z
5e7f5c89bf7bbd758a108995aee38615
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
23021
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "yt_bg_left@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 228
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_left_5_5.imageset
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 242
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_left_5_5.imageset/Contents.json
END
yt_bg_down@3x.png
K 25
svn:wc:ra_dav:version-url
V 246
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_left_5_5.imageset/yt_bg_down@3x.png
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_left_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
Contents.json
file
2018-01-29T02:36:43.000000Z
5a82ed4c1391f747bcb819e4e95d03d2
2017-10-25T09:41:14.985349Z
9434
pengcl1
310
yt_bg_down@3x.png
file
2018-01-29T02:36:43.000000Z
5ef8154e0cbaa7eb76215f34cc745456
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
28855
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "yt_bg_down@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 229
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_right_5_5.imageset
END
yt_bg_right@3x.png
K 25
svn:wc:ra_dav:version-url
V 248
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_right_5_5.imageset/yt_bg_right@3x.png
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 243
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_right_5_5.imageset/Contents.json
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_right_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
yt_bg_right@3x.png
file
2018-01-29T02:36:32.000000Z
01cf33a34d8e548ea133fb04125bdf44
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
28686
Contents.json
file
2018-01-29T02:36:32.000000Z
95693aa30fc55c04bf3f35852e435671
2017-10-25T09:41:14.985349Z
9434
pengcl1
311
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "yt_bg_right@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 226
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_up_5_5.imageset
END
yt_bg_top@3x.png
K 25
svn:wc:ra_dav:version-url
V 243
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_up_5_5.imageset/yt_bg_top@3x.png
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 240
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_up_5_5.imageset/Contents.json
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_active_up_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
yt_bg_top@3x.png
file
2018-01-29T02:36:55.000000Z
9dd061fe61138231ea440c6886e8de94
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
23553
Contents.json
file
2018-01-29T02:36:55.000000Z
199b3773f7814ac0adf29ab59068050c
2017-10-25T09:41:14.985349Z
9434
pengcl1
309
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "yt_bg_top@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 223
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_normal_5_5.imageset
END
yt_bg_nor@3x.png
K 25
svn:wc:ra_dav:version-url
V 240
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_normal_5_5.imageset/yt_bg_nor@3x.png
END
Contents.json
K 25
svn:wc:ra_dav:version-url
V 237
/svn/tccloudvideo/!svn/ver/9434/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_normal_5_5.imageset/Contents.json
END
@@ -0,0 +1,96 @@
10
dir
11290
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo/04.SRC/mobile/iOS/LVCloudCamera/branches/4.1.4/LVCloudCamera/Module/CloudGradleRatateCircleView/LVCloudGradleRotateImageAsset.xcassets/newly_protrait_rotateBackgroundImage_normal_5_5.imageset
http://pengcl1@124.127.40.157:1035/svn/tccloudvideo
2017-10-25T09:41:14.985349Z
9434
pengcl1
14bc015a-2994-4a5f-aa75-843653ab7711
yt_bg_nor@3x.png
file
2018-01-29T02:36:43.000000Z
f1758b6ac02de424da679e90438e35d8
2017-10-25T09:41:14.985349Z
9434
pengcl1
has-props
7436
Contents.json
file
2018-01-29T02:36:43.000000Z
11db5b984a4277368da3643ac048858e
2017-10-25T09:41:14.985349Z
9434
pengcl1
309
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "yt_bg_nor@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

+90
View File
@@ -0,0 +1,90 @@
/*
* RNSwipeViewController
*
* Created by Ryan Nystrom on 10/2/12.
* Copyright (c) 2012 Ryan Nystrom. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#import <UIKit/UIView.h>
/** Helps clean up code for changing UIView frames.
Instead of creating a CGRect struct, changing properties and reassigning. For example, moving a UIView newX points to the left:
CGRect frame = view.frame;
frame.origin x = (CGFloat)newX + view.frame.size.width;
view.frame = frame;
This can be cleaned up to:
view.left += newX;
Properties bottom and right also take into account the width of the UIView.
*/
@interface UIView (Sizes)
///---------------------------------------------------------------------------------------
/// @name Edges
///---------------------------------------------------------------------------------------
/** Get the left point of a view. */
@property (nonatomic) CGFloat left;
/** Get the top point of a view. */
@property (nonatomic) CGFloat top;
/** Get the right point of a view. */
@property (nonatomic) CGFloat right;
/** Get the bottom point of a view. */
@property (nonatomic) CGFloat bottom;
///---------------------------------------------------------------------------------------
/// @name Dimensions
///---------------------------------------------------------------------------------------
/** Get the width of a view. */
@property (nonatomic) CGFloat width;
/** Get the height of a view. */
@property (nonatomic) CGFloat height;
///---------------------------------------------------------------------------------------
/// @name Quick Access
///---------------------------------------------------------------------------------------
/** Get the origin of a view. */
@property (nonatomic) CGPoint origin;
/** Get the size of a view. */
@property (nonatomic) CGSize size;
///---------------------------------------------------------------------------------------
/// @name Center
///---------------------------------------------------------------------------------------
/** Get the center.x of a view. */
@property (nonatomic) CGFloat centerX;
/** Get the center.y of a view. */
@property (nonatomic) CGFloat centerY;
@end
+135
View File
@@ -0,0 +1,135 @@
/*
* RNSwipeViewController
*
* Created by Ryan Nystrom on 10/2/12.
* Copyright (c) 2012 Ryan Nystrom. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#import "UIView+Sizes.h"
@implementation UIView (Sizes)
#pragma mark - Edges
- (CGFloat)left {
return self.frame.origin.x;
}
- (void)setLeft:(CGFloat)x {
CGRect frame = self.frame;
frame.origin.x = x;
self.frame = frame;
}
- (CGFloat)top {
return self.frame.origin.y;
}
- (void)setTop:(CGFloat)y {
CGRect frame = self.frame;
frame.origin.y = y;
self.frame = frame;
}
- (CGFloat)right {
return self.frame.origin.x + self.frame.size.width;
}
- (void)setRight:(CGFloat)right {
CGRect frame = self.frame;
frame.origin.x = right - frame.size.width;
self.frame = frame;
}
- (CGFloat)bottom {
return self.frame.origin.y + self.frame.size.height;
}
- (void)setBottom:(CGFloat)bottom {
CGRect frame = self.frame;
frame.origin.y = bottom - frame.size.height;
self.frame = frame;
}
#pragma mark - Dimensions
- (CGFloat)width {
return self.frame.size.width;
}
- (void)setWidth:(CGFloat)width {
CGRect frame = self.frame;
frame.size.width = width;
self.frame = frame;
}
- (CGFloat)height {
return self.frame.size.height;
}
- (void)setHeight:(CGFloat)height {
CGRect frame = self.frame;
frame.size.height = height;
self.frame = frame;
}
#pragma mark - Quick Access
- (CGPoint)origin {
return self.frame.origin;
}
- (void)setOrigin:(CGPoint)origin {
CGRect frame = self.frame;
frame.origin = origin;
self.frame = frame;
}
- (CGSize)size {
return self.frame.size;
}
- (void)setSize:(CGSize)size {
CGRect frame = self.frame;
frame.size = size;
self.frame = frame;
}
#pragma mark - Center
- (CGFloat)centerX{
return self.center.x;
}
- (void)setCenterX:(CGFloat)centerX{
self.center = CGPointMake(centerX, self.center.y);
}
- (CGFloat)centerY{
return self.center.y;
}
- (void)setCenterY:(CGFloat)centerY{
self.center = CGPointMake(self.center.x, centerY);
}
@end