国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

2020-12-31 18:21文頂頂 IOS

這篇文章主要介紹了iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下

靜態(tài)單元格的使用
一、實現(xiàn)效果與說明

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

說明:觀察上面的展示效果,可以發(fā)現(xiàn)整個界面是由一個tableview來展示的,上面的數(shù)據(jù)都是固定的,且?guī)缀醪粫淖儭?/p>

要完成上面的效果,有幾種方法:

(1)可以直接利用代碼,返回三組,在判斷每組有多少行,展示些什么數(shù)據(jù),這樣寫“死”的代碼建議絕不要使用。

(2)稍微靈活一些的,可以把plist文件一懶加載的方式,加載到程序中,動態(tài)獲取。但是觀察界面結(jié)構(gòu),很容易看出這樣需要進行模型嵌套,很麻煩。

(3)storyboard提供了靜態(tài)單元格這個功能,可以很方便的完成上面的界面展示效果。(提示:在實際的開發(fā)中很少這樣使用)

二、使用靜態(tài)單元格完成簡單界面展示的過程

在類似的開發(fā)中,如果整個界面都是tableview,那么直接讓控制器繼承自uitableviewcontroller.

修改主控制器,讓其繼承自uitableviewcontroller

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

把storyboard中默認的uiview刪掉,直接拖一個viewcontroller

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

當拖入一個viewcontroller的時候,它上面默認就會有一個cell,默認情況下,這個cell是動態(tài)的,也就是默認是看不見的。

把cell設(shè)置成靜態(tài)的,在屬性面板的content  中設(shè)置為static cell(靜態(tài)cell)所見即所得  注意必須更改這里的這個屬性。

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

讓它和主控制器關(guān)聯(lián)

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

接下來,可以依次設(shè)置顯示的圖片和文字。

設(shè)置標題有兩種方式:

1是雙擊更改

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

2是點擊子控件  lable修改

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

按照界面需要,設(shè)置輔助視圖

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

設(shè)置有多少組,每組有多少行。
設(shè)置組:
點擊tableview   設(shè)置屬性面板的sections屬性。

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

設(shè)置每組多少行:

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

小技巧:如果寫的單元格千年不變,那么可以先寫一組中的一行,再拷貝,稍作修改即可。
注意:靜態(tài)單元格是實際開發(fā)中,很少用到,此處只當知識點介紹。


在uitableview的應用中使用動態(tài)單元格來完成app應用程序管理界面的搭建
一、實現(xiàn)效果

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

說明:該示例在storyboard中使用動態(tài)單元格來完成。

二、實現(xiàn)

1.項目文件結(jié)構(gòu)和plist文件

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

2.實現(xiàn)過程以及代碼

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

在tableview的屬性選擇器中選擇動態(tài)單元格。

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

說明:在storyboard中直接使用其自帶的動態(tài)單元格完成tableviewcell的定義,并創(chuàng)建了一個管理該cell的類,進行了連線。

實現(xiàn)代碼:

數(shù)據(jù)模型部分:

yyappinfo.h文件

 

復制代碼 代碼如下:


//
//  yyappinfo.h
//  01-使用動態(tài)單元格來完成app應用程序管理界面的搭建
//
//  created by 孔醫(yī)己 on 14-6-2.
//  copyright (c) 2014年 itcast. all rights reserved.
//

 

#import <foundation/foundation.h>

@interface yyappinfo : nsobject
@property(nonatomic,copy)nsstring *size;
@property(nonatomic,copy)nsstring *download;
@property(nonatomic,copy)nsstring *icon;
@property(nonatomic,copy)nsstring *name;

 

-(instancetype)initwithdict:(nsdictionary *)dict;
+(instancetype)appinfowithdict:(nsdictionary *)dict;
@end


yyappinfo.m文件

復制代碼 代碼如下:


//
//  yyappinfo.m
//  01-使用動態(tài)單元格來完成app應用程序管理界面的搭建
//
//  created by 孔醫(yī)己 on 14-6-2.
//  copyright (c) 2014年 itcast. all rights reserved.
//

 

#import "yyappinfo.h"

@implementation yyappinfo

-(instancetype)initwithdict:(nsdictionary *)dict
{
    if (self=[super init]) {
        //使用kvc
        [self setvaluesforkeyswithdictionary:dict];
    }
    return self;
}


+(instancetype)appinfowithdict:(nsdictionary *)dict
{

    return [[self alloc]initwithdict:dict];
}
@end


視圖部分

 

 yyappcell.h文件

復制代碼 代碼如下:


//
//  yyappcell.h
//  01-使用動態(tài)單元格來完成app應用程序管理界面的搭建
//
//  created by 孔醫(yī)己 on 14-6-2.
//  copyright (c) 2014年 itcast. all rights reserved.
//

 

#import <uikit/uikit.h>


@class yyappinfo,yyappcell;

@protocol yyappcelldelegate <nsobject>
-(void)btndidclick:(yyappcell *)cell;


@end
@interface yyappcell : uitableviewcell

@property(nonatomic,strong)yyappinfo *app;
//@property(nonatomic,strong)yyviewcontroller *controller;
@property(nonatomic,strong)id <yyappcelldelegate> delegate;

@end


yyappcell.m文件

復制代碼 代碼如下:


//
//  yyappcell.m
//  01-使用動態(tài)單元格來完成app應用程序管理界面的搭建
//
//  created by 孔醫(yī)己 on 14-6-2.
//  copyright (c) 2014年 itcast. all rights reserved.
//

 

#import "yyappcell.h"
#import "yyappinfo.h"

@interface yyappcell ()
@property (weak, nonatomic) iboutlet uiimageview *appimg;

@property (weak, nonatomic) iboutlet uilabel *apptitle;
@property (weak, nonatomic) iboutlet uilabel *appdownload;
@property (weak, nonatomic) iboutlet uibutton *appbtn;

@end

 

復制代碼 代碼如下:


@implementation yyappcell

 


-(void)setapp:(yyappinfo *)app
{
    _app=app;
    self.apptitle.text=_app.name;
    self.appdownload.text=[nsstring stringwithformat:@"大小 %@ | 下載量 %@次",_app.size,_app.download];
    self.appimg.image=[uiimage imagenamed:_app.icon];
   
}

#pragma mark- 完成按鈕點擊事件

- (ibaction)btnonclick:(uibutton *)sender
{
    //按鈕被點擊后,變?yōu)椴豢捎脿顟B(tài)
    sender.enabled=no;
   
    //通知代理,完成提示下載已經(jīng)完成的動畫效果
    if ([self.delegate respondstoselector:@selector(btndidclick:)]) {
        //一般而言,誰觸發(fā)就把誰傳過去
        [self.delegate  btndidclick:self];
    }
}

@end


主控制器

 

yyviewcontroller.m文件

復制代碼 代碼如下:


//
//  yyviewcontroller.m
//  01-使用動態(tài)單元格來完成app應用程序管理界面的搭建
//
//  created by 孔醫(yī)己 on 14-6-2.
//  copyright (c) 2014年 itcast. all rights reserved.
//

 

#import "yyviewcontroller.h"
#import "yyappinfo.h"
#import "yyappcell.h"

@interface yyviewcontroller ()<uitableviewdatasource,yyappcelldelegate>
@property(nonatomic,strong)nsarray *apps;
@property (strong, nonatomic) iboutlet uitableview *tableview;

@end

 

復制代碼 代碼如下:


@implementation yyviewcontroller

 

- (void)viewdidload
{
    [super viewdidload];
}

#pragma mark- 使用懶加載先把plist文件中得數(shù)據(jù)加載進來
-(nsarray *)apps
{
    if (_apps==nil) {
        nsstring *fullpath=[[nsbundle mainbundle]pathforresource:@"apps_full.plist" oftype:nil];
        nsarray *arraym=[nsarray arraywithcontentsoffile:fullpath];
       
        nsmutablearray *modles=[nsmutablearray arraywithcapacity:arraym.count];
        for (nsdictionary *dict in arraym) {
            yyappinfo *appinfo=[yyappinfo appinfowithdict:dict];
            [modles addobject:appinfo];
        }
        _apps=[modles copy];
    }
    return _apps;
}


#pragma mark- 設(shè)置tableview的數(shù)據(jù)源方法
//組
-(nsinteger)numberofsectionsintableview:(uitableview *)tableview
{
    return 1;
}
//行
-(nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section
{
    return self.apps.count;
}
//組-行-數(shù)據(jù)
-(uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath
{
    //創(chuàng)建cell
    static nsstring *identifier=@"app";
    yyappcell *cell=[tableview dequeuereusablecellwithidentifier:identifier];
    //設(shè)置cell的數(shù)據(jù)
    yyappinfo *appinfo=self.apps[indexpath.row];
    //設(shè)置代理
    cell.delegate=self;
    cell.app=appinfo;
    //返回cell
    return cell;
}

#pragma mark- 設(shè)置代理
-(void)btndidclick:(yyappcell *)cell
{
    //取出模型
    yyappinfo *app=cell.app;
    nslog(@"daili");
    uilabel *lab=[[uilabel alloc]init];
    //提示的顯示位置
    lab.frame=cgrectmake(60, 300, 200, 20);
    //設(shè)置提示文本
    lab.text=[nsstring stringwithformat:@"%@已經(jīng)下載完成",app.name];
    //設(shè)置文本背景顏色
    [lab setbackgroundcolor:[uicolor graycolor]];
    [self.view addsubview:lab];
    lab.alpha=1.0;
   
    //設(shè)置動畫效果
    [uiview animatewithduration:2.0 animations:^{
        lab.alpha=0.0;
    } completion:^(bool finished) {
        //把彈出的提示信息從父視圖中刪除
        [lab removefromsuperview];
    }];
}

#pragma mark-隱藏狀態(tài)欄
-(bool)prefersstatusbarhidden
{
    return yes;
}

@end


補充說明

 

  在程序中通過標示符取出對應的cell,是因為在storyboard中已經(jīng)對cell打上了標示符(app)的標簽。

復制代碼 代碼如下:

//組-行-數(shù)據(jù)
-(uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath
{
    //創(chuàng)建cell
    static nsstring *identifier=@"app";
    yyappcell *cell=[tableview dequeuereusablecellwithidentifier:identifier];
    //設(shè)置cell的數(shù)據(jù)
    yyappinfo *appinfo=self.apps[indexpath.row];
    //設(shè)置代理
    cell.delegate=self;
    cell.app=appinfo;
    //返回cell
    return cell;
}

 

iOS開發(fā)的UI制作中動態(tài)和靜態(tài)單元格的基本使用教程

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩有码在线播放 | 日韩精品一区二区在线观看视频 | 午夜久久久 | 日本不卡免费新一二三区 | 免费精品视频一区二区三区 | 伊人干 | 精品国产一区探花在线观看 | 成人三区| 大香伊蕉在人线视频777 | 国产伦精品一区二区三区 | 五月婷婷精品 | 亚洲精品久久久久久久久久久 | 欧美午夜精品久久久久久浪潮 | 成人夜色av| 玖玖精品 | 欧美成人免费在线视频 | 国产精品久久久久久久久久ktv | 一区二区视频在线观看 | 国产欧美综合视频 | 依人九九宗合九九九 | 精品一区二区三区在线视频 | 亚洲精品字幕 | 欧美一级在线视频 | 日本网站在线免费观看 | 日韩免费精品 | 久久久久久久久久久亚洲 | 日韩精品久久久久久 | 精品视频久久久久 | 人妖天堂狠狠ts人妖天堂狠狠 | 亚洲精品成a人ⅴ香蕉片 | av黄色网 | 91精品一区二区三区久久久久久 | 色接久久 | 亚洲高清视频在线观看 | 久久伊99综合婷婷久久伊 | 自拍偷拍第一页 | 黄色国产免费看 | 久久久久国产精品午夜一区 | 成人av在线一区二区 | 亚洲一区久久 | 成人国产精品久久久 |