zoukankan      html  css  js  c++  java
  • IOS 读取xib里的子控件

    interface ViewController ()
    /**获取.plist数据*/
    @property (nonatomic,strong) NSArray *aps;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
      
        
        //九宫格的总列数
        int totalColumns=5;
        
        //1.1个格子的尺寸
        CGFloat appW=50;
        CGFloat appH=60;
        
        //2.计算间隙 =(控制器view的宽度 -5*应用宽度)/应用宽度+1
        CGFloat marginX=(self.view.frame.size.width-totalColumns*appW)/(totalColumns+1);
        CGFloat marginY=55;
        //3.要的应用个数创建对应的格子
        
        for (int index=0; index<self.aps.count; index++)
        {
            NSBundle *bundle=[NSBundle mainBundle];
            //读取xib文件(会创建AppsView.xib中的描述的所有对象。并且按顺序放到数组中返回) 
    NSArray *objs=[bundle loadNibNamed:@"AppsView"
    owner:nil options:nil];
    UIView
    *appView=[objs lastObject];

    //添加view
    [self.view addSubview:appView];

    //设置frame
    int row=index/ totalColumns; int col=index% totalColumns;

    //计算x和y CGFloat appx=marginX+col*(appW+marginX);
    CGFloat appY
    =marginY+row *(appH + marginY);
    appView.frame
    =CGRectMake(appx, appY, appW, appH);
    //设置数据
    Apps *app=self.aps[index];

    //设置图片(xib中的appView取子控件 UIImageView)

    // UIImageView *iconView=appView.subviews[0]; //方式1

    UIImageView *iconView=(UIImageView *)[appView viewWithTag:10];//方式2
    iconView.image=[UIImage imageNamed:app.icon];

    //设置名称(xib中的appView取子控件 UILabel)

    // UILabel *nameLabel=appView.subviews[1];//方式1

    UILabel *nameLabel=(UILabel *)[appView viewWithTag:20];//方式2
    nameLabel.text=
    app.name;
    }

    }
  • 相关阅读:
    关于dependency的scope
    Enum
    vim
    postgres函数
    Static块与线程安全
    查看文件夹及文件大小df du
    mac下安装jdk
    硬盘修复原理
    关于Jquery的Accordion在IE下闪烁,不稳定的问题
    vmare安装linux问题总结4(redhat在启动时卡在sendmail很久)
  • 原文地址:https://www.cnblogs.com/liuwj/p/6414424.html
Copyright © 2011-2022 走看看