zoukankan      html  css  js  c++  java
  • UI2_ScrollViewHomeWork

    //
    //  AppDelegate.m
    //  UI2_ScrollViewHomeWork
    //
    //  Created by zhangxueming on 15/7/13.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "AppDelegate.h"
    #import "ViewController.h"
    
    
    @interface AppDelegate ()
    
    @end
    
    @implementation AppDelegate
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        ViewController *root = [[ViewController alloc] init];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:root];
        self.window.rootViewController  = nav;
        self.window.backgroundColor  = [UIColor whiteColor];
        //[self.window makeKeyAndVisible];
        
        return YES;
    }
    
    
    
    
    //
    //  ViewController.h
    //  UI2_ScrollViewHomeWork
    //
    //  Created by zhangxueming on 15/7/13.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    #import "DetailViewController.h"
    
    @interface ViewController : UIViewController <sendMessageReport>
    
    @end
    
    //
    //  ViewController.m
    //  UI2_ScrollViewHomeWork
    //
    //  Created by zhangxueming on 15/7/13.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "ViewController.h"
    #import "CustomImageView.h"
    #import "DetailViewController.h"
    
    @interface ViewController ()
    {
        UIScrollView *_scrollView;
    }
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        _scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
        self.automaticallyAdjustsScrollViewInsets = YES;
        _scrollView.showsHorizontalScrollIndicator = NO;
        _scrollView.showsVerticalScrollIndicator = NO;
        _scrollView.bounces = NO;
        //_scrollView.backgroundColor = [UIColor cyanColor];
        NSInteger rowCount = 4;
        CGFloat space = 2;
        CGFloat imageViewWidth = (self.view.frame.size.width-2*5)/4;
        CGFloat imageViewHeight = imageViewWidth*1.5;
        
        NSString *path = [[NSBundle mainBundle] pathForResource:@"AlbumData" ofType:@"plist"];
        NSArray *array = [NSArray arrayWithContentsOfFile:path];
        int i=0;
        for (NSDictionary *dict in array) {
            NSString *title = [dict objectForKey:@"TITLE"];
            NSString *name = [NSString stringWithFormat:@"%@.jpg",[dict objectForKey:@"NAME"]];
            UIImage *image = [UIImage imageNamed:name];
        
            CustomImageView *imageView = [[CustomImageView alloc] initWithFrame:CGRectMake(space+(space+imageViewWidth)*(i%rowCount), (i/rowCount)*(space+imageViewHeight)+space, imageViewWidth, imageViewHeight)];
            imageView.image = image;
            imageView.label.text = title;
            imageView.tag = 100+i;
            
            UITapGestureRecognizer  *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)];
            imageView.userInteractionEnabled = YES;
            [imageView addGestureRecognizer:tap];
            
            [_scrollView addSubview:imageView];
            i++;
        }
        _scrollView.contentSize = CGSizeMake(self.view.frame.size.width, (imageViewHeight+space)*8+space);
        [self.view addSubview:_scrollView];
    }
    
    - (void)tapGesture:(UITapGestureRecognizer *)tap
    {
        DetailViewController *dvc = [[DetailViewController alloc] init];
        dvc.image = ((UIImageView *)tap.view).image;
        dvc.imageViewTag = tap.view.tag;
        dvc.delegate = self;
        
        [self.navigationController pushViewController:dvc animated:YES];
    }
    
    - (void)sendViewTag:(NSInteger)tag andTitle:(NSString *)title
    {
        CustomImageView *imageView = (CustomImageView *)[_scrollView viewWithTag:tag];
        imageView.label.text = title;
    }
    
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    
    //
    //  CustomImageView.h
    //  UI2_ScrollViewHomeWork
    //
    //  Created by zhangxueming on 15/7/13.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface CustomImageView : UIImageView
    
    @property (nonatomic,strong) UILabel *label;
    @property (nonatomic,copy)NSString *title;
    
    @end
    
    
    //
    //  CustomImageView.m
    //  UI2_ScrollViewHomeWork
    //
    //  Created by zhangxueming on 15/7/13.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "CustomImageView.h"
    
    @implementation CustomImageView
    
    /*
    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    - (void)drawRect:(CGRect)rect {
        // Drawing code
    }
    */
    
    - (instancetype)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            self.label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, 50)];
            self.label.alpha = 0.5;
            self.label.textAlignment = NSTextAlignmentCenter;
            self.label.adjustsFontSizeToFitWidth = YES;
            self.label.text = self.title;
            self.label.backgroundColor = [UIColor whiteColor];
            [self addSubview:self.label];
        }
        return self;
    }
    
    
    
    
    @end
    
    //
    //  DetailViewController.h
    //  UI2_ScrollViewHomeWork
    //
    //  Created by zhangxueming on 15/7/13.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @protocol sendMessageReport <NSObject>
    
    - (void)sendViewTag:(NSInteger)tag andTitle:(NSString *)title;
    
    @end
    
    
    @interface DetailViewController : UIViewController
    
    @property (nonatomic, strong)UIImage *image;
    @property (nonatomic, assign)NSInteger imageViewTag;
    @property (nonatomic, assign)id <sendMessageReport  > delegate;
    
    @end
    
    
    
    //
    //  DetailViewController.m
    //  UI2_ScrollViewHomeWork
    //
    //  Created by zhangxueming on 15/7/13.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "DetailViewController.h"
    
    @interface DetailViewController ()
    
    @end
    
    @implementation DetailViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 64, self.view.frame.size.width-20,50)];
        textField.borderStyle = UITextBorderStyleRoundedRect;
        textField.tag = 200;
        [self.view addSubview:textField];
        
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 64+50, self.view.frame.size.width-20, 300)];
        imageView.tag = 200;
        imageView.image = self.image;
        [self.view addSubview:imageView];
        
        UIBarButtonItem *item= [[UIBarButtonItem alloc] initWithTitle:@"保存" style:UIBarButtonItemStylePlain target:self action:@selector(btnClick)];
        self.navigationItem.rightBarButtonItem = item;
    }
    
    
    - (void)btnClick
    {
        UITextField *textField = (UITextField *)[self.view viewWithTag:200];
        
        if ([_delegate respondsToSelector:@selector(sendViewTag:andTitle:)]) {
            [_delegate sendViewTag:self.imageViewTag andTitle:textField.text];
        }
        [self.navigationController popViewControllerAnimated:YES];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    /*
    #pragma mark - Navigation
    
    // In a storyboard-based application, you will often want to do a little preparation before navigation
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        // Get the new view controller using [segue destinationViewController].
        // Pass the selected object to the new view controller.
    }
    */
    
    @end
    
  • 相关阅读:
    ionic localstorage
    angular 中文鏈接
    把jqmobi 變成jQuery 的插件 從此使用jQuery
    jqmobi 的一些設置
    ionic ngcordova map 地圖
    ionic pull to refresh 下拉更新頁面
    json 對象的序列化
    鍵盤彈出,頁面佈局被推上去了.....
    Cordova V3.0.0中config.xml配置文件的iOS Configuration
    android ios 只能輸入數字 不能輸入小數點的 函數 cordova
  • 原文地址:https://www.cnblogs.com/0515offer/p/4643542.html
Copyright © 2011-2022 走看看