IOS ScrollView loop play plus zoom
Last Update:2016-10-08
Source: Internet
Author: User
<span id="Label3"></p><p><p>The previous days have been studying the framework of the 3d there is no time to write a blog, but the final demand changed, also did not study what. This time out of the new requirements, need to cycle the picture, and when the middle of the slide when the picture has a zoom effect. Just started to want to search the internet, but did not find the right demo, no way can only write A.</p></p><p><p>First of all, the idea, to do this effect needs to solve three problems.</p></p><p><p>First question, how to control the distance of each Slide. iOS doesn't seem to set the distance ScrollView each Slide. When you set the size and pageenable of the frame, the distance of each slide is Determined. But the need to show three pictures ah, the big picture, both sides of the pictures only show part. Also think of a disgusting way, the size of the picture frame is set to the width of the image? the distance between a picture (this distance can be adjusted according to the actual situation), the Masktobounds set to no, you Can. however, There is a drawback, the left and right side of the picture is not responsive to the sliding event, there is time to solve the problem later.</p></p><p><p>The second problem, loop play, This estimate will, do not explain, you can look at the Code.</p></p><p><p>The third problem, but also the difficulty, how to change the size of the picture when Sliding. We can get its centerx based on the position of the picture on the scrollview, and then build a linear equation based on the difference between it and the contentoffset.x+width/2.0 (half the width of the picture) +gap/2.0 (half the picture Spacing) as x, It's really simple, just look at the Code. Finally set the Transform.</p></p><p><p>Maybe it's not clear, just go to the Code.</p></p><pre><span style="color: #008080;"><span style="color: #008080;">1</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Number of pictures</span></span><span style="color: #008080;"><span style="color: #008080;">2</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">#define</span></span>Arraycount 3<span style="color: #008080;"><span style="color: #008080;">3</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">scale <span style="color: #008000;">of Scaling</span></span><span style="color: #008080;"><span style="color: #008080;">4</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">#define</span></span>Scale 0.369565<span style="color: #008080;"><span style="color: #008080;">5</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">#import</span></span> <span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">ALNewKeeperScrollView.h</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #008080;"><span style="color: #008080;">6</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">#import</span></span> <span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">ALNewKeeperModelView.h</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #008080;"><span style="color: #008080;">7</span></span> <span style="color: #008080;"><span style="color: #008080;">8</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">@interface</span></span>Alnewkeeperscrollview () <UIScrollViewDelegate><span style="color: #008080;"><span style="color: #008080;">9</span></span> <span style="color: #000000;"><span style="color: #000000;">{</span></span><span style="color: #008080;"><span style="color: #008080;">Ten</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span><span style="color: #000000;">rate <span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> one</span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span><span style="color: #000000;"><span style="color: #000000;">gap;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span><span style="color: #000000;"><span style="color: #000000;">whrate;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span><span style="color: #000000;"><span style="color: #000000;">width;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span><span style="color: #000000;"><span style="color: #000000;">height;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;">BOOL iffirstscroll;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;">}</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>@property (nonatomic, Strong) Uiscrollview *<span style="color: #000000;"><span style="color: #000000;">scrollView;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">@end</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">@implementation</span></span><span style="color: #000000;"><span style="color: #000000;">Alnewkeeperscrollview</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #008080;"><span style="color: #008080;"></span> a</span>-<span style="color: #000000;"><span style="color: #000000;">(instancetype) initwithframe: (cgrect) frame</span></span><span style="color: #008080;"><span style="color: #008080;"></span> at</span> <span style="color: #000000;"><span style="color: #000000;">{</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(self =<span style="color: #000000;"><span style="color: #000000;">[super Initwithframe:frame])</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>[[nsnotificationcenter defaultcenter] addobserver:self selector: @selector (setclipstoboundsyes) name:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Setclipstoboundsyes</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Object</span></span><span style="color: #000000;"><span style="color: #000000;">: nil];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>[[nsnotificationcenter defaultcenter] addobserver:self selector: @selector (setclipstoboundsno) name:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Setclipstoboundsno</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Object</span></span><span style="color: #000000;"><span style="color: #000000;">: nil];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Rate =<span style="color: #800080;"><span style="color: #800080;">640</span></span>/<span style="color: #000000;"><span style="color: #000000;">screen_width;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> in</span>Gap = (<span style="color: #800080;"><span style="color: #800080;"></span> -</span>*<span style="color: #800080;"><span style="color: #800080;">4</span></span>)/<span style="color: #000000;">rate <span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Whrate = (<span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span>)<span style="color: #800080;"><span style="color: #800080;">630</span></span>/<span style="color: #800080;"><span style="color: #800080;">470</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> to</span>Height =<span style="color: #800080;"><span style="color: #800080;">460</span></span>/<span style="color: #000000;">rate <span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span>width = height/<span style="color: #000000;"><span style="color: #000000;">whrate;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #008080;"><span style="color: #008080;"></span> the</span>Self.scrollview = [[uiscrollview alloc] initwithframe:cgrectmake (<span style="color: #800080;"><span style="color: #800080;">0</span></span>,<span style="color: #800080;"><span style="color: #800080;">0</span></span>, width+<span style="color: #000000;"><span style="color: #000000;">gap, self.height)];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> *</span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Self.scrollView.backgroundColor = [uicolor cyancolor];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span>Self.scrollView.centerX = self.width*<span style="color: #800080;"><span style="color: #800080;">0.5</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;">Panax Notoginseng</span></span>Self.scrollView.showsVerticalScrollIndicator =<span style="color: #000000;"><span style="color: #000000;">NO;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Self.scrollView.showsHorizontalScrollIndicator =<span style="color: #000000;"><span style="color: #000000;">NO;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>Self.scrollView.scrollsToTop =<span style="color: #000000;"><span style="color: #000000;">NO;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span>Self.scrollview.<span style="color: #0000ff;"><span style="color: #0000ff;">Delegate</span></span>=<span style="color: #000000;">self <span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span>Self.scrollView.clipsToBounds =<span style="color: #000000;"><span style="color: #000000;">NO;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;">[self addSubview:self.scrollView];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #008080;"><span style="color: #008080;"></span> -</span>Iffirstscroll =<span style="color: #000000;"><span style="color: #000000;">YES;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span> <span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;">self <span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;">}</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>- (<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">) Setclipstoboundsyes</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;">{</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Self.scrollView.clipsToBounds =<span style="color: #000000;"><span style="color: #000000;">YES;</span></span><span style="color: #008080;"><span style="color: #008080;">Wuyi</span></span> <span style="color: #000000;"><span style="color: #000000;">}</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>- (<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">) Setclipstoboundsno</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;">{</span></span><span style="color: #008080;"><span style="color: #008080;"></span> wu</span>Self.scrollView.clipsToBounds =<span style="color: #000000;"><span style="color: #000000;">NO;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;">}</span></span><span style="color: #008080;"><span style="color: #008080;"></span> about</span>- (<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>) Config: (nsarray *<span style="color: #000000;"><span style="color: #000000;">) array andoffset: (nsinteger) index</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span> <span style="color: #000000;"><span style="color: #000000;">{</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>Arraycount =<span style="color: #000000;"><span style="color: #000000;">arraycount;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>Count = arraycount+<span style="color: #800080;"><span style="color: #800080;">4</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> for</span>(<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>I=<span style="color: #800080;"><span style="color: #800080;">0</span></span>; i<count; i++<span style="color: #000000;"><span style="color: #000000;">)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">3 4 0 1 2 3 4 0 1</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>Alnewkeepermodelview *view = [[alnewkeepermodelview alloc] initwithframe:cgrectmake (gap/<span style="color: #800080;"><span style="color: #800080;">2.0</span></span>+ i* (width+gap),<span style="color: #800080;"><span style="color: #800080;">122</span></span>/<span style="color: #000000;">rate <span style="color: #000000;">, width, height)];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>View.centery = Self.height *<span style="color: #800080;"><span style="color: #800080;">0.5</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(i<<span style="color: #800080;"><span style="color: #800080;">2</span></span><span style="color: #000000;"><span style="color: #000000;">)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>[view config:[nsstring stringwithformat:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">%i</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>, i+<span style="color: #800080;"><span style="color: #800080;">3</span></span><span style="color: #000000;"><span style="color: #000000;">]];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Else</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(i<count-<span style="color: #800080;"><span style="color: #800080;">2</span></span><span style="color: #000000;"><span style="color: #000000;">)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> in</span>[view config:[nsstring stringwithformat:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">%i</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>, i-<span style="color: #800080;"><span style="color: #800080;">2</span></span><span style="color: #000000;"><span style="color: #000000;">]];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Else</span></span><span style="color: #008080;"><span style="color: #008080;"></span> about</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>[view config:[nsstring stringwithformat:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">%i</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>, i-(count-<span style="color: #800080;"><span style="color: #800080;">2</span></span><span style="color: #000000;"><span style="color: #000000;">)]];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;">[self.scrollview addsubview:view];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>self.scrollView.pagingEnabled =<span style="color: #000000;"><span style="color: #000000;">YES;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">self.scrollView.bounces = NO;</span></span><span style="color: #008080;"><span style="color: #008080;">Bayi</span></span>[self.scrollview setcontentsize:cgsizemake (count* (gap+width) +gap,<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;">)];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span>OffsetX = (index+<span style="color: #800080;"><span style="color: #800080;">2</span></span>) * (width+<span style="color: #000000;"><span style="color: #000000;">gap);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>[self.scrollview Setcontentoffset:cgpointmake (offsetx,<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;">)];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;">}</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #008080;"><span style="color: #008080;"></span> the</span>- (<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>) Scrollviewdidscroll: (uiscrollview *<span style="color: #000000;"><span style="color: #000000;">) ScrollView</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;">{</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>CGFloat StartX = width+<span style="color: #000000;"><span style="color: #000000;">gap;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>CGFloat EndX = (arraycount +<span style="color: #800080;"><span style="color: #800080;">2</span></span>) * (width+<span style="color: #000000;"><span style="color: #000000;">gap);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>CGFloat OffsetX =<span style="color: #000000;"><span style="color: #000000;">scrollview.contentoffset.x;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>((nsinteger) OffsetX <=<span style="color: #000000;"><span style="color: #000000;">(nsinteger) startX)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>[scrollView Setcontentoffset:cgpointmake (endx-startx,<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;">)];</span></span><span style="color: #008080;"><span style="color: #008080;">94</span></span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>((nsinteger) OffsetX >=<span style="color: #000000;"><span style="color: #000000;">(nsinteger) endx)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>[scrollView Setcontentoffset:cgpointmake (startx+startx,<span style="color: #800080;"><span style="color: #800080;">0</span></span><span style="color: #000000;"><span style="color: #000000;">)];</span></span><span style="color: #008080;"><span style="color: #008080;">98</span></span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> about</span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Zoom the image size when sliding</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span>Contentoffsetx =<span style="color: #000000;"><span style="color: #000000;">scrollview.contentoffset.x;</span></span><span style="color: #008080;"><span style="color: #008080;">101</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span>CenterX = contentoffsetx+gap/<span style="color: #800080;"><span style="color: #800080;">2.0</span></span>+width/<span style="color: #800080;"><span style="color: #800080;">2.0</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;">102</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> for</span>(<span style="color: #0000ff;"><span style="color: #0000ff;">ID</span></span>View<span style="color: #0000ff;"><span style="color: #0000ff;">inch</span></span><span style="color: #000000;"><span style="color: #000000;">[scrollView subviews])</span></span><span style="color: #008080;"><span style="color: #008080;">103</span></span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;">104</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>([view Iskindofclass:[alnewkeepermodelview<span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">]])</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;">106</span></span>Alnewkeepermodelview *modelview = (alnewkeepermodelview *<span style="color: #000000;"><span style="color: #000000;">) view;</span></span><span style="color: #008080;"><span style="color: #008080;">107</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span>x = modelview.centerx-<span style="color: #000000;"><span style="color: #000000;">centerx;</span></span><span style="color: #008080;"><span style="color: #008080;">108</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span>Scale =<span style="color: #800080;"><span style="color: #800080;">1.0</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;">109</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(x >=<span style="color: #800080;"><span style="color: #800080;">0</span></span>&& x <=<span style="color: #000000;"><span style="color: #000000;">Width)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;">111</span></span>Scale + =-scale/width*x+<span style="color: #000000;">scale <span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;">113</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Else</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(x <<span style="color: #800080;"><span style="color: #800080;">0</span></span>&& x >-<span style="color: #000000;"><span style="color: #000000;">Width)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>Scale + = scale/width*x+<span style="color: #000000;">scale <span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;">117</span></span>NSLog (<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">%f</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">, scale);</span></span><span style="color: #008080;"><span style="color: #008080;">118</span></span> <span style="color: #000000;"><span style="color: #000000;">[self Setshadow:modelview andscale:scale];</span></span><span style="color: #008080;"><span style="color: #008080;">119</span></span>Modelview.transform =<span style="color: #000000;"><span style="color: #000000;">Cgaffinetransformmakescale (scale, scale);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;">121</span></span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;">122</span></span> <span style="color: #000000;"><span style="color: #000000;">}</span></span><span style="color: #008080;"><span style="color: #008080;">123</span></span> <span style="color: #008080;"><span style="color: #008080;">124</span></span>- (<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>) setshadow: (UIView *) View Andscale: (<span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span><span style="color: #000000;"><span style="color: #000000;">)</span> scale</span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;">{</span></span><span style="color: #008080;"><span style="color: #008080;">126</span></span>View.layer.shadowColor =<span style="color: #000000;"><span style="color: #000000;">[uicolor blackcolor]. cgcolor;</span></span><span style="color: #008080;"><span style="color: #008080;">127</span></span>View.layer.shadowOffset = Cgsizemake (<span style="color: #800080;"><span style="color: #800080;">4</span></span>,<span style="color: #800080;"><span style="color: #800080;">4</span></span><span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>View.layer.shadowRadius =<span style="color: #800080;"><span style="color: #800080;">5</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;">129</span></span>View.layer.shadowOpacity = (<span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span>) (scale-<span style="color: #800080;"><span style="color: #800080;">1.0</span></span>)*<span style="color: #800080;"><span style="color: #800080;">2</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;">}</span></span><span style="color: #008080;"><span style="color: #008080;">131</span></span> <span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;">@end</span></span></pre><p><p>These are the main classes, and there are several classes that you don't have to write About. You can customize a view to replace a class that is not in the class.</p></p><p><p>IOS ScrollView loop play plus zoom</p></p></span>