• ios 笔记



    1
    2
    3
    4
    5
    6
    7
    8
    //- (UIResponder *)nextResponder
    返回调用该方法的对象下一个接收事件的对象,如果没有对象那就返回nil
    //- (BOOL)resignFirstResponder 
    让调用对象在当前窗口失去事件首对象状态。当方法运行实现默认返回YES,取消事件首对象状态。子类可以从写这个方法用来更新状态或者取消高亮选择,或者f返回NO,来拒绝取消事件首选项。
    //- (BOOL)isFirstResponder   
    返回一个布尔变量表示调用给方法的对象是否是首对象。如果调用该方法的对下功能是首对象那就返回YES,不然就返回NO
    // - (BOOL)canResignFirstResponder
    //返回一个布尔值指示调用该方法的对象是否取消了第一响应对象的状态。如果调用对象可以取消首响应对象状态就返回YES,不然返回NO 举个例子,一个文本框如果返回了NO那他就会强制结束用户的编辑。
    IOS-- UIView中的坐标转换
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值
    - (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;
    // 将像素point从view中转换到当前视图中,返回在当前视图中的像素值
    - (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view;
                  
    // 将rect由rect所在视图转换到目标视图view中,返回在目标视图view中的rect
    - (CGRect)convertRect:(CGRect)rect toView:(UIView *)view;
    // 将rect从view中转换到当前视图中,返回在当前视图中的rect
    - (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view;

    delegate的使用

    delegate其实和java中的jie'ko接口是类似的原理,wei't委托别人去实现他方法的细节,,自己zh只是实现方法d的chan'she产生

    例如:classA产生classADelegae 方法 ,

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    在h文件中产生delegate
    @protocol SelectBankDelegate <NSObject>
            
    -(void)setBankName:(NSString *)bankName  withKey:(NSString *)key;
        id<SelectBankDelegate>      delegate;
            
    @property (nonatomic, assign) id<SelectBankDelegate> delegate;
    然后在m文件中调用:
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (tableView == _searchDisplayVC.searchResultsTableView)
        {
            NSLog(@"key:%@--value:%@",[keysArray objectAtIndex:indexPath.row],[_searchResultArray objectAtIndex:indexPath.row]);
            if (delegate) {
                [delegate setBankName:[_searchResultArray objectAtIndex:indexPath.row] withKey:[keysArray objectAtIndex:indexPath.row]];
            }
        }
    }
    tableview实现点击方法,
    然后在m另一个文件实现他方法的编写
    -(void)setBankName:(NSString *)bankName  withKey:(NSString *)key{
    //    NSLog(@"%@%@",bankName,key);
        bankNameField_.text = bankName;
        bankcode = key;
        UserInfoCell *cell = (UserInfoCell *)bankNameField_.superview.superview;
        cell.imageView.image = [UIImage imageNamed:@"apply_button_right.png"];
    }
    完成dedelegate的调用实现,

    ios 实现 数据的传递也可以整个对象的形式传递过去:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    先定义个info.h类
    @interface info : NSObject{
        NSString *text1;
        NSString *tetx2;
    }
        
    @property(nonatomic,retain)NSString *text1;
    @property(nonatomic,retain)NSString *text2;
        
    然后在一个页面要把数据传递到另一个页面,因此在view中或得到的值包装成一个对象
    .h
    #import "info.h"
    @interface ViewView : UIView
    @property (retain, nonatomic) IBOutlet UILabel *label1;
    @property (retain, nonatomic) IBOutlet UILabel *label2;
        
    -(info *)getInfo;
    .m
    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
                
            _label1=[[UILabel alloc]initWithFrame:CGRectMake(30, 30, 50, 40)];
            _label1.text=@"aaa";
            [self addSubview:_label1];
                
                
            _label2=[[UILabel alloc]initWithFrame:CGRectMake(30, 100, 50, 40)];
            _label2.text=@"bbb";
            [self addSubview:_label2];
        }
        return self;
    }
    -(info *)getInfo{
        info *infoText=[[info alloc]init];
        infoText.text1=_label1.text;
        infoText.text2=_label2.text;
        return infoText;
    }
    最后把view的对象传递给另一个view1就可以了,在view1中实现
     ViewView *view=[[ViewView alloc]initWithFrame:self.view.bounds];
        [self.view addSubview:view];
        NSLog(@"-------%@,----------%@",view.getInfo.text1,view.getInfo.text2);
    ,实现数据传递

    view  实现手势chan长按方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    //创建长按手势监听
        UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
                                                   initWithTarget:self
                                                   action:@selector(myHandleTableviewCellLongPressed:)];
    //    longPress.delegate = self;
        longPress.minimumPressDuration = 1.0;
        //将长按手势添加到需要实现长按操作的视图里
        [gridView addGestureRecognizer:longPress];
        [longPress release];
      
    //长按事件的手势监听实现方法
    - (void) myHandleTableviewCellLongPressed:(UILongPressGestureRecognizer *)gestureRecognizer {
        if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
            NSLog(@"UIGestureRecognizerStateBegan");
        }
        if (gestureRecognizer.state == UIGestureRecognizerStateChanged) {
            NSLog(@"UIGestureRecognizerStateChanged");
        }
          
        if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
            NSLog(@"UIGestureRecognizerStateEnded");
        }
    }

    今天先就这些了,多多总结,才能进步。come on!


  • 相关阅读:
    真机分享文件到虚拟机的centos 7 分享文件位置记录
    Linux系统列出某个用户组里的所有用户命令
    笔记之Linux命令vi
    笔记之Linux系统文件管理命令
    我的C#
    消息框
    ddt数据驱动在ui自动化中的应用二【多测师】
    ddt数据驱动在ui自动化中的应用一【多测师】
    基于ddt+unittest+Excel做接口测试自动化测试【多测师】
    Python操作MD5加密【多测师】
  • 原文地址:https://www.cnblogs.com/zhangsongbai/p/3102593.html
Copyright © 2020-2023  润新知