編輯:關於Android編程
#import ViewController.h #define ImageViewCount 5 @interface ViewController ()@property (weak, nonatomic) IBOutlet UIScrollView *imageScrollView; @property (weak, nonatomic) IBOutlet UIPageControl *imageViewPageControl; @property (strong, nonatomic) NSTimer *timer; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self addImageView2ScrollView]; self.imageScrollView.contentSize = CGSizeMake(self.imageScrollView.frame.size.width * ImageViewCount, 0); self.imageScrollView.delegate = self; self.imageScrollView.pagingEnabled = YES;//UIScrollView支持拖動分頁 self.imageViewPageControl.numberOfPages = ImageViewCount; [self addScrollTimer]; } - (void)rotatePic{ int currentPageIndex = self.imageViewPageControl.currentPage; if(++currentPageIndex == 5){ currentPageIndex = 0; } CGFloat offsetX = currentPageIndex * self.imageScrollView.frame.size.width; [UIView animateWithDuration:1 animations:^{ self.imageScrollView.contentOffset = CGPointMake(offsetX, 0); }]; } /**添加圖片到imageScrollView*/ - (void)addImageView2ScrollView{ CGFloat imageWidth = self.imageScrollView.frame.size.width; CGFloat imageHeight = self.imageScrollView.frame.size.height; for(int i = 0;i <= ImageViewCount;i++){ UIImageView *imageInScroll = [[UIImageView alloc] init]; imageInScroll.frame = CGRectMake(i * imageWidth, 0, imageWidth, imageHeight); imageInScroll.image = [UIImage imageNamed:[NSString stringWithFormat:@img_%02d,i + 1]]; [self.imageScrollView addSubview:imageInScroll]; } } // 正滾動時執行 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ CGFloat offX = self.imageScrollView.contentOffset.x;//(0,0)距離content內部左上頂點的x軸長度 NSLog(@~~~~~~~%f ^^^^^^%f, offX, self.imageScrollView.frame.size.width); int currentPageIndex = (offX + .5f * self.imageScrollView.frame.size.width) / self.imageScrollView.frame.size.width; self.imageViewPageControl.currentPage = currentPageIndex; } - (void)addScrollTimer{ self.timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(rotatePic) userInfo:nil repeats:YES]; [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; } - (void)removeScrollTimer{ [self.timer invalidate];//釋放定時器 self.timer = nil; } // 開始准備滾動時執行 移除定時滾動操作 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ NSLog(@~~~scrollViewWillBeginDragging); [self removeScrollTimer]; }www.2cto.com // 結束滾動後執行 添加定時滾動操作 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ NSLog(@~~~scrollViewDidEndDragging); [self addScrollTimer]; } @end
1.注意設置contentSize屬性。其中contentSize表示scroll內容尺寸大小
2.注意設置代理UIScrollViewDelegate,才可調用其中的方法
對於定時器NSTimer的運用需注意
1.在線程的loop中添加定時器
2.注意使用完成回收NSTimer
前言由於Android自帶的TextView控件沒有提供傾斜的(我暫時沒有找到),我們可以自定義控件來實現,下面首先來看我們實現的效果圖。TextView文字傾斜其實實現
在Android開發中,我們不可避免的會做到注冊功能,而現在的注冊大多數都是用手機去注冊的,那麼注冊的時候都會要求用獲取驗證碼的方式去驗證,我們接下來就來實戰一下自定義
開始 繼上一次Masterkey漏洞之後,Bluebox在2014年7月30日又公布了一個關於APK簽名的漏洞——FakeID,並打算在今年的Bl
前言其實對於側滑菜單,在博主剛開始學android接觸到的時候,博主是非常感興趣的,也非常想知道它是如何實現的,在技術的不斷上升之後,我也可以自己封裝側滑菜單了.雖然網上