UI06 無限滾動的相簿

2021-09-30 12:47:52 字數 3535 閱讀 2300

#import 

@inte***ce

@property (strong, nonatomic) uiwindow *window;

@end

#import "rootviewcontroller.h"

@inte***ce

@end

@implementation

- (void)dealloc

self

.window = [[uiwindow alloc] initwithframe:[[uiscreen mainscreen] bounds]];

self

.window

.backgroundcolor = [uicolor whitecolor];

[self

.window makekeyandvisible];

[_window release];

rootviewcontroller *rootvc = [[rootviewcontroller alloc] init];

self

.window

.rootviewcontroller = rootvc;

[rootvc release];

return

yes;}

rootviewcontroller.h

#import 

@inte***ce

rootviewcontroller : uiviewcontroller

@end

rootviewcontroller.m

#import "rootviewcontroller.h"

#define width self.view.frame.size.width

#define height self.view.frame.size.height

@inte***ce

rootviewcontroller ()

@property(nonatomic, retain)uiscrollview *scrollview;

@property(nonatomic, retain)uipagecontrol *page;

@end

@implementation

rootviewcontroller

- (void)dealloc

- (void)viewdidload

uiimageview *lastimageview = [[uiimageview alloc] initwithframe:cgrectmake(8 * width, 0, width, height)];

lastimageview.image = [uiimage imagenamed:@"h1.jpeg"];

[self

.scrollview addsubview:lastimageview];

[lastimageview release];

lastimageview.userinteractionenabled = yes;

// 為了能顯示第一張, 我們需要先設定乙個偏移量, 這樣能直接顯示羅蘋的第一張

self

.scrollview

.contentoffset = cgpointmake(width, 0);

// 設定**人

self

.scrollview

.delegate = self;

// 用定時器實現無限滾動

// [nstimer scheduledtimerwithtimeinterval:1 target:self selector:@selector(changeimage) userinfo:nil repeats:yes];

// 建立乙個pagecontrol

self

.page = [[uipagecontrol alloc] initwithframe:cgrectmake(100, 100, 150, 30)];

[self

.view addsubview:self

.page];

[self

.page release];

self

.page

.backgroundcolor = [uicolor cyancolor];

self

.page

.numberofpages = 7;

// 設定未被點的顏色

self

.page

.pageindicatortintcolor = [uicolor blackcolor];

// 選中的點的顏色

self

.page

.currentpageindicatortintcolor = [uicolor whitecolor];

// touchupinside 和 valuechange 皆可用+

[self

.page addtarget:self action:@selector(changepage:) forcontrolevents:uicontroleventvaluechanged];

// 想要scrollview實現縮放功能, 需要先設定最大最小縮放比例

self

.scrollview

.minimumzoomscale = 0.5;

self

.scrollview

.maximumzoomscale = 2;

}#pragma mark 這個方法用來管理scrollview的縮放功能

- (uiview *)viewforzoominginscrollview:(uiscrollview *)scrollview

- (void)changepage:(uipagecontrol *)page

- (void)changeimage

// 自動向左滾動

if (self

.scrollview

.contentoffset

.x == 0)

}// 滑動結束, 觸發的協議方法

- (void)scrollviewdidenddecelerating:(uiscrollview *)scrollview

if (self

.scrollview

.contentoffset

.x == 0)

// pagecontrol和scrollview進行關聯, 點的移動方向和scrollview的偏移量相關

// 無論怎麼方向滑動, 當pagecontrol和scrollview關聯的時候, 偏移量都是修改好的, 所以可以正確的滾動和顯示

self

.page

.currentpage = self

.scrollview

.contentoffset

.x / width - 1;

}

無限滾動條的css布局理解

一 需求描述 carul li 二 問題描述 1.全部放不進容器裡,因為父容器只有600px,4張1200px,後面的圖只能被擠到第二排。加動畫效果時,等左移,第一排的空夠300px放一張圖時,才放到第一排。動畫效果十分不理想。2.用動畫控制marginleft,來製造左移效果。第四張切到第一張時轉...

用CSS3實現無限迴圈的無縫滾動

有時候在頁面的某個模組中,需要無限迴圈的滾動一些訊息。那麼如果我們用js實現無縫銜接滾動的思路是什麼呢 比如我們這個模組是向上滾動的 轉殖a乙份完全一樣的資料b放在原資料a的後面 使用setinterval向上滾動a的父級容器 當向上滾動的距離l正好的a的高度時 l a.height l 0,重新開...

用CSS3實現無限迴圈的無縫滾動

有時候在頁面的某個模組中,需要無限迴圈的滾動一些訊息。那麼如果我們用js實現無縫銜接滾動的思路是什麼呢 比如我們這個模組是向上滾動的 轉殖a乙份完全一樣的資料b放在原資料a的後面 使用setinterval向上滾動a的父級容器 當向上滾動的距離l正好的a的高度時 l a.height l 0,重新開...