From a65f3eca97dd976a60218e2369e05912387d95a9 Mon Sep 17 00:00:00 2001 From: smartdriver001 <124186221@qq.com> Date: Mon, 2 Jul 2018 15:54:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AD=97=E5=B9=95=E8=BF=9E?= =?UTF-8?q?=E7=BB=AD=E8=BF=87=E5=8D=8A=E6=BB=9A=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 18268 bytes .../xcschemes/xcschememanagement.plist | 14 +++++++ LMJScrollText/ViewController.m | 22 ++++++++++ LMJScrollTextView/LMJScrollTextView.h | 1 + LMJScrollTextView/LMJScrollTextView.m | 38 ++++++++++++++++++ 6 files changed, 83 insertions(+) create mode 100644 LMJScrollText.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 LMJScrollText.xcodeproj/project.xcworkspace/xcuserdata/dd.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 LMJScrollText.xcodeproj/xcuserdata/dd.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/LMJScrollText.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/LMJScrollText.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/LMJScrollText.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/LMJScrollText.xcodeproj/project.xcworkspace/xcuserdata/dd.xcuserdatad/UserInterfaceState.xcuserstate b/LMJScrollText.xcodeproj/project.xcworkspace/xcuserdata/dd.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..e6705b14ee8fea086595d7fe40563a9a309796d3 GIT binary patch literal 18268 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 M7#vq*|EBc#AFqW|vH$=8 literal 0 HcmV?d00001 diff --git a/LMJScrollText.xcodeproj/xcuserdata/dd.xcuserdatad/xcschemes/xcschememanagement.plist b/LMJScrollText.xcodeproj/xcuserdata/dd.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..3db60bc --- /dev/null +++ b/LMJScrollText.xcodeproj/xcuserdata/dd.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + LMJScrollText.xcscheme + + orderHint + 0 + + + + diff --git a/LMJScrollText/ViewController.m b/LMJScrollText/ViewController.m index 99df256..02f3016 100644 --- a/LMJScrollText/ViewController.m +++ b/LMJScrollText/ViewController.m @@ -16,7 +16,9 @@ @interface ViewController () LMJScrollTextView * _scrollTextView1_2; LMJScrollTextView * _scrollTextView2; + LMJScrollTextView * _scrollTextView21; LMJScrollTextView * _scrollTextView3; + LMJScrollTextView * _scrollTextView31; LMJScrollTextView * _scrollTextView4; LMJScrollTextView * _scrollTextView5; LMJScrollTextView * _scrollTextView6; @@ -68,6 +70,7 @@ - (void)viewDidLoad { [_scrollTextView2 startScrollWithText:@"<<<向左连续滚动字符串|向左连续滚动字符串|向左连续滚动字符串" textColor:[UIColor blackColor] font:[UIFont systemFontOfSize:16]]; + //向右,连续滚动 [self addLabelWithFrame:CGRectMake(10, 185, 400, 20) text:@"向右,连续滚动(right,continuous)"]; @@ -129,7 +132,24 @@ - (void)viewDidLoad { + //向左,连续滚动,超过一半,就开始新的 + [self addLabelWithFrame:CGRectMake(10, 475, 400, 20) text:@"向左,连续滚动(left,continuousHalf)"]; + + _scrollTextView21 = [[LMJScrollTextView alloc] initWithFrame:CGRectMake(10, 495, 300, 30) textScrollModel:LMJTextScrollContinuousHalf direction:LMJTextScrollMoveLeft]; + _scrollTextView21.backgroundColor = [UIColor whiteColor]; + [self.view addSubview:_scrollTextView21]; + + [_scrollTextView21 startScrollWithText:@"<<<向左连续滚动字符串|向左连续滚动字符串|向左连续滚动字符串" textColor:[UIColor blackColor] font:[UIFont systemFontOfSize:16]]; + + + //向右,连续滚动 滚到一半重新出现 + [self addLabelWithFrame:CGRectMake(10, 525, 400, 20) text:@"向右,连续滚动(right,continuousHalf)"]; + + _scrollTextView31 = [[LMJScrollTextView alloc] initWithFrame:CGRectMake(10, 545, 300, 30) textScrollModel:LMJTextScrollContinuousHalf direction:LMJTextScrollMoveRight]; + _scrollTextView31.backgroundColor = [UIColor whiteColor]; + [self.view addSubview:_scrollTextView31]; + [_scrollTextView31 startScrollWithText:@"向右连续滚动字符串>>>" textColor:[UIColor blackColor] font:[UIFont systemFontOfSize:16]]; @@ -162,6 +182,8 @@ -(void)changeSpeed{ [_scrollTextView5 setMoveSpeed:speed]; [_scrollTextView6 setMoveSpeed:speed]; [_scrollTextView7 setMoveSpeed:speed]; + [_scrollTextView21 setMoveSpeed:speed]; + [_scrollTextView31 setMoveSpeed:speed]; } } diff --git a/LMJScrollTextView/LMJScrollTextView.h b/LMJScrollTextView/LMJScrollTextView.h index b353c53..6a1da08 100644 --- a/LMJScrollTextView/LMJScrollTextView.h +++ b/LMJScrollTextView/LMJScrollTextView.h @@ -19,6 +19,7 @@ */ typedef enum { LMJTextScrollContinuous, // 从控件内开始连续滚动 + LMJTextScrollContinuousHalf, // 自定义 连续滚动过半、就开始下一个 LMJTextScrollIntermittent, // 从控件内开始间断滚动 LMJTextScrollFromOutside, // 从控件外开始滚动 LMJTextScrollWandering // 在控件中往返滚动(不受设置方向影响) diff --git a/LMJScrollTextView/LMJScrollTextView.m b/LMJScrollTextView/LMJScrollTextView.m index f8a21d3..2fde838 100644 --- a/LMJScrollTextView/LMJScrollTextView.m +++ b/LMJScrollTextView/LMJScrollTextView.m @@ -103,6 +103,16 @@ -(void)startScroll{ }break; + case LMJTextScrollContinuousHalf: + { + if (_currentMoveDirection == LMJTextScrollMoveLeft) { + [self creatLabel1WithFrame1:CGRectMake(0, 0, _textWidth, self.frame.size.height) andLabel2WithFrame2:CGRectMake(self.frame.size.width/2 + _textWidth, 0, _textWidth, self.frame.size.height)]; + }else{ + [self creatLabel1WithFrame1:CGRectMake(self.frame.size.width -_textWidth, 0, _textWidth, self.frame.size.height) andLabel2WithFrame2:CGRectMake(self.frame.size.width -_textWidth -_textWidth - self.frame.size.width/2, 0, _textWidth, self.frame.size.height)]; + } + + }break; + case LMJTextScrollIntermittent: { if (_currentMoveDirection == LMJTextScrollMoveLeft) { @@ -182,6 +192,11 @@ - (void)contentMove { [self moveContinuous]; } break; + case LMJTextScrollContinuousHalf: + { + [self moveContinuousHalf]; + } + break; case LMJTextScrollIntermittent: { [self moveIntermittent]; @@ -223,6 +238,29 @@ -(void)moveContinuous{ } } } + +//连续滚动中间过半就出现 +-(void)moveContinuousHalf{ + if (_currentMoveDirection == LMJTextScrollMoveLeft) { + _contentLabel1.frame = CGRectMake(_contentLabel1.frame.origin.x -1, 0, _textWidth, self.frame.size.height); + _contentLabel2.frame = CGRectMake(_contentLabel2.frame.origin.x -1, 0, _textWidth, self.frame.size.height); + if (_contentLabel1.frame.origin.x < -_textWidth) { + _contentLabel1.frame = CGRectMake(_contentLabel2.frame.origin.x + _textWidth + self.frame.size.width/2, 0, _textWidth, self.frame.size.height); + } + if (_contentLabel2.frame.origin.x < -_textWidth) { + _contentLabel2.frame = CGRectMake(_contentLabel1.frame.origin.x + _textWidth + self.frame.size.width/2, 0, _textWidth, self.frame.size.height); + } + }else{ + _contentLabel1.frame = CGRectMake(_contentLabel1.frame.origin.x +1, 0, _textWidth, self.frame.size.height); + _contentLabel2.frame = CGRectMake(_contentLabel2.frame.origin.x +1, 0, _textWidth, self.frame.size.height); + if (_contentLabel1.frame.origin.x > self.frame.size.width) { + _contentLabel1.frame = CGRectMake(_contentLabel2.frame.origin.x - _textWidth - self.frame.size.width/2, 0, _textWidth, self.frame.size.height); + } + if (_contentLabel2.frame.origin.x > self.frame.size.width) { + _contentLabel2.frame = CGRectMake(_contentLabel1.frame.origin.x - _textWidth- self.frame.size.width/2, 0, _textWidth, self.frame.size.height); + } + } +} //间断滚动 -(void)moveIntermittent{ if (_currentMoveDirection == LMJTextScrollMoveLeft) {