1. Trang chủ
  2. » Công Nghệ Thông Tin

HƯỚNG dẫn PHÂN TRANG TRONG IOS xử DỤNG FILE XIB

10 332 2

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 382,69 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HƯỚNG DẪN PHÂN TRANG TRONG IOS XỬ DỤNG FILE XIB Các ứng dụng thực tế chúng ta gặp rất nhiều phong cánh chuyển tiếp nhiều view khác nhau.. Ở hướng dẫn này mình sẽ giới thiệu các bạn phân

Trang 1

HƯỚNG DẪN PHÂN TRANG TRONG IOS XỬ

DỤNG FILE XIB

Các ứng dụng thực tế chúng ta gặp rất nhiều phong cánh chuyển tiếp nhiều view khác nhau Ở hướng dẫn này mình sẽ giới thiệu các bạn phân trang và chuyển tiếp giữa các trang Như một cuốn truyện được phân ra các trang và chúng ta lướt đến từng trang để đọc!!!

->mục tiêu bài này mình sẽ giúp các bạn :

– Phân trang định hướng theo chiều nào

– Chuyển tiếp giữa các trang

– Các điểm di chuyển theo trang

Bắt đầu nào tạo project mới và đặt tên là XibPageViewController

Tạo 2 file

ChildViewController.xib.Để tạo các viewcontroller con

pageViewController.xib Để tạo viewcontroller chính để load các viewcontroller con

lên

Trang 3

Tạo 2 file class để quản lý 2 viewcontroller trên !!!…

ChildViewController: Quản lý ChildViewController.xib

pageViewController Quản lý pageViewController.xib

sau khi tạo nó sẽ trông thế này

Trang 4

Xoá đi file mặc định ViewController

Thiết kế giao diện

chọn file ChildViewController.xib

kết nối class quản lý

kết nối view

Trang 5

thay đổi màu background và thêm một label vào

label để phân biệt xem đó là file xib nào khi ta load

ánh xạ label sang class quản lý và đặt tên:

1 @property(weak, nonatomic) IBOutlet UILabel *Screenindex;

Làm việc tương đương với giao diện file pageViewController.xib

nhưng ta chỉ thay đổi color background trông như thế này

Trang 6

Mã nguồn code:

vào ChildViewController.h:

1 @property(weak, nonatomic) IBOutlet UILabel *Screenindex;

2 @property(assign,nonatomic) NSInteger index;

Thêm index để hiển thị lên label đánh dấu xem đang xem file xib nào

ChildViewController.m:

settex lên label:

1 - (void)viewDidLoad {

2 [super viewDidLoad];

3 self.Screenindex.text=[[NSString alloc]initWithFormat:@"Screen %ld",(long)self.index];

4

5 }

Để chuyển tiếp được trang trong ios 5 trở đi có hỗ trợ class UIPageViewController cho phép chuyển tiếp các trang hiệu ứng chuyển ,đánh dấu trang…

vào file pageViewController.h

để sử dụng UIPageViewController đăng đý dataSource

Trang 7

và khởi tạo pageViewcontroller

1 @interface pageViewController : UIViewController<UIPageViewControllerDataSource>

2 @property(nonatomic,strong) UIPageViewController *pageController;

UIPageViewController cung cấp 2 phương thức để xem trang trước đó và xem trang ngay sau đó

xem trang trước đó

1 -UIViewController *)pageViewController:(UIPageViewController *)pageViewController

viewControllerBeforeViewController:(UIViewController *)viewController{

2

3

4 }

xem trang ngay sau nó

1 -UIViewController *)pageViewController:(UIPageViewController *)pageViewController

viewControllerAfterViewController:(UIViewController *)viewController{

2

3 }

Ta tạo ra một hàm mới ,Dùng đăng ký file xib nào sẽ được gọi set giá trị cho index của

1 -ChildViewController *)viewControllerAtIndex:(NSUInteger)index{

2 // đăng ký viewcontroller!

3 ChildViewController *childViewcontroller=[[ChildViewController

alloc]initWithNibName:@"ChildViewController"bundle:nil];

4 childViewcontroller.index=index;

5 return childViewcontroller;

6 }

trả về file viewcontroller xib đó.!!!

Kiểm tra màn hình ngay trước màn hình đang xem có tồn tại không và trả về màn hình ngay trước đó

1 -UIViewController *)pageViewController:(UIPageViewController *)pageViewController

viewControllerBeforeViewController:(UIViewController *)viewController{

2 NSUInteger index=[(ChildViewController *)viewController index];

3 if(index==0){

4 return nil;

5 }

Trang 8

6 index ;

7 return [self viewControllerAtIndex:index];

8 }

Kiểm tra màn hình ngay sau màn hình đang xem có tồn tại không và trả về màn hình ngay sau đó

1 -UIViewController *)pageViewController:(UIPageViewController *)pageViewController

viewControllerAfterViewController:(UIViewController *)viewController{

2 NSUInteger index=[(ChildViewController *)viewController index];

3 index++;

4 if(index==5){

5 return nil;

6 }

7 return [self viewControllerAtIndex:index];

8 }

Khi lướt 2 hàm trên mới được gọi

-đăng ký số ô chấm sẽ được hiển thị và bắt đầu từ ô chấm nào!!!

1 -NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController{

2 return 5;

3 }

4 // vi tri o bat dau!!!

5 -NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController{

6 return 0;

7 }

Tạo một mảng để lưu lại các màn hình sẽ hiển thị!!!

1 NSMutableArray *viewControllers;//

Các bạn thêm đoạn mã sau vào Viewdidload mình sẽ giải thích từng dùng lệnh:

1 - (void)viewDidLoad {

2 [super viewDidLoad];

3 viewControllers = [[NSMutableArray alloc]init];

4 // Xác định Kiểu chuyển hướng và xác định hướng chuyển đổi!

5 // Kiểu cuộn trang

6 self.pageController = [[UIPageViewController alloc]

7 initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll

8 navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];

9 // đăng ký dataSource !!!

10 self.pageController.dataSource = self;

11 // xet full Screen

12 [[self.pageController view] setFrame:[[self view] bounds]];

Trang 9

13 // tao trang thu 0 va tren index cho no

14 ChildViewController *initialViewController = [self viewControllerAtIndex:0];

15 //

16 [viewControllers addObject:initialViewController];

17 [self.pageController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

18

19 [self addChildViewController:self.pageController];

20

21 [[self view] addSubview:[self.pageController view]];

22 }

Đầu tiên là đăng ký Kiểu chuyển trang, đăng ký hướng sẽ chuyển đổi

Đăng ký dataSource cho pageViewController

đăng ký fullScreen cho pageViewController

tạo file Viewcontroller.xib thứ 0 để load lên đầu tiên đưaviewcontroller.xib vào mảng để lưu lại…!!!

gán màn hình vựa tạo ra vào self.pageController cho phép chuyển theo

kiểu UIPageViewControllerNavigationDirectionForward

sau đó từ view hiện tại thêm vào self.pageController đã được đăng ký…

cuối cùng cho phép dán lên viêw hiện tại

ok Để load file pageViewController.xib

ta thêm đoạn mã sau!!! ở đây tôi đã hướng dẫn các bạn load file xib!!!

1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

2 self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

3 UIViewController *controller=[[pageViewController alloc]initWithNibName:@"pageViewController" bundle:nil];

4 self.window.rootViewController=controller;

5 [self.window makeKeyWindow];

6 return YES;

7 }

Chúng ta biên dịch và chạy thử sẽ được kết quả như hình

Trang 10

full code

1 http://www.mediafire.com/download/nyg21azcfkm3112/XibPageViewController.zip

Ngày đăng: 19/10/2016, 00:45

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm