【代碼筆記】iCarouselDemo

来源:http://www.cnblogs.com/yang-guang-girl/archive/2016/04/25/5429702.html
-Advertisement-
Play Games

一,效果圖。 二,工程圖。 三,代碼。 RootViewController.h RootViewController.m myCell.h myCell.m CardViewController.h CardViewController.m ...


一,效果圖。

二,工程圖。

三,代碼。

RootViewController.h

RootViewController.m

myCell.h

複製代碼
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
@interface myCell : UITableViewCell
{
    UILabel * myLable;
    UIImageView * myImageView;
    UILabel * title;
}
@property (strong,nonatomic) UILabel * myLabel;
@property (strong,nonatomic) UIImageView * myImageView;
@property (strong,nonatomic) UILabel * title;
@end
複製代碼

 

myCell.m

複製代碼
#import "myCell.h"

@implementation myCell

@synthesize myLabel;
@synthesize myImageView;
@synthesize title;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        
        myLabel = [[UILabel alloc] init];
        myLabel.lineBreakMode=NSLineBreakByCharWrapping;
        myLabel.numberOfLines = 0;
        myLabel.font = [UIFont fontWithName:@"MicrosoftYaHei" size:20.0];
        [self addSubview:myLabel];
        
        myImageView = [[UIImageView alloc] init];
        [self addSubview:myImageView];
        
        title = [[UILabel alloc] init];
        title.frame = CGRectMake(10, 10, 50, 30);
        title.backgroundColor = [UIColor colorWithRed:230/255.0 green:192/255.0 blue:203/255.0 alpha:1.0];
        title.layer.cornerRadius = 10.0;
        [self addSubview:title];
       ;
    }
    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];
    // Configure the view for the selected state
}
@end
複製代碼

 

CardViewController.h

複製代碼
#import <UIKit/UIKit.h>

@interface CardViewController : UIViewController
<UITableViewDataSource,UITableViewDelegate>
{
    NSMutableArray *array ;
    NSMutableArray * titleArray;
}
@property (strong ,nonatomic) NSMutableArray *array;
@property (strong,nonatomic) NSString * month;
@property (strong,nonatomic) NSString * imageName;
@property (strong,nonatomic) NSString * title;

@end
複製代碼

 

CardViewController.m

複製代碼
#import "CardViewController.h"
#import "myCell.h"

@interface CardViewController ()

@end

@implementation CardViewController
@synthesize array;
@synthesize month;
@synthesize imageName;
@synthesize title;


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

-(void)viewDidLoad
{
    [super viewDidLoad];
    
    
    NSDictionary * dic1 = [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"BabyCard" ofType:@"plist"]];
    self.array = [dic1 objectForKey:month];
    
    NSDictionary * dic2 = [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Title" ofType:@"plist"]];
    titleArray = [[NSMutableArray alloc] init];
    titleArray = [dic2 objectForKey:title];
    
    UITableView * tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 460) style:UITableViewStylePlain];
    tableView.delegate = self;
    tableView.dataSource = self;
    tableView.showsVerticalScrollIndicator = NO;
    [self.view addSubview:tableView];
    
    
    UIButton * back = [UIButton buttonWithType:UIButtonTypeCustom];
    back.frame = CGRectMake(10, 10, 25, 31);
    [back setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
    [back addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
    [tableView addSubview:back];
}
#pragma -mark -doClickActions
-(void)back
{
    CATransition *animation = [CATransition animation];
    animation.delegate = self;
    animation.duration = 0.7;
    animation.type = @"oglFlip";
    animation.subtype = kCATransitionFromLeft;
    [self.view.layer addAnimation:animation forKey:@"animation"];
    [self.navigationController dismissViewControllerAnimated:YES completion:nil];
}
#pragma -mark -UITableViewDelegate
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return array.count;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString * str = [array objectAtIndex:indexPath.row];
  
    CGSize size=[str boundingRectWithSize:CGSizeMake(300, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:20.0]} context:nil].size;

    
    if(indexPath.row == 0)
    {
         return size.height + 350;
    }
    else
    {
        return size.height + 60;
    }
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    myCell * cell = [tableView dequeueReusableCellWithIdentifier:@"id"];
    if(cell == nil){
        cell = [[myCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"id"];
    }
    
    NSString * str = [array objectAtIndex:indexPath.row];
    CGSize size=[str boundingRectWithSize:CGSizeMake(300, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:20.0]} context:nil].size;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    
   
    NSString * str2 = [NSString stringWithFormat:@" %@ ",[titleArray objectAtIndex:indexPath.row]];
    CGSize size2=[str boundingRectWithSize:CGSizeMake(300, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:10.0]} context:nil].size;
    cell.title.text = str2;
    if(indexPath.row == 0){
        cell.myImageView.hidden = NO;
        cell.myImageView.image = [UIImage imageNamed:imageName];
        cell.myImageView.frame = CGRectMake(0, 0, 320, 300);
        cell.myLabel.frame = CGRectMake(10, 350, 300, size.height);
        cell.title.frame = CGRectMake(10, 310, size2.width, 30);
    }else{
        cell.myImageView.hidden = YES;
        cell.myLabel.frame = CGRectMake(10, 50, 300, size.height);
        cell.title.frame = CGRectMake(10, 10,size2.width, 30);
    }
    cell.myLabel.text = str;
    return cell;
}
@end
複製代碼
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 按鈕下拉菜單 按鈕下拉菜單僅從外觀上看和下拉菜單效果基本上是一樣的。它們唯一的不同是外部容器div.dropdown換成了div.btn-group bootstrap.css文件 按鈕的向下向上三角形 按鈕的向下三角形,是通過在button標簽中添加span標簽元素,且類名為.caret 這個三角 ...
  • 層疊樣式表中最基本的一個方面可能就是層疊——衝突的聲明要通過這個層疊過程排序,並由此確定最終的文檔表示。這個過程的核心是選擇器及其相關聲明的特殊性,以及繼承機制。 特殊性 對於每個規則,用戶代理會計算選擇器的特殊性,並將這個特殊性附加到規則中的各個聲明。如果一個元素有兩個或多個衝突的屬性聲明,那麼有 ...
  • 原理: 1、js動態創建DIV,指定CLASS類設置不同的背景圖樣式顯示不同的雪花效果。 2、js獲取創建的DIV並改變其top屬性值,當下落的高度大於屏幕高後刪除該移動div 3、好像不夠完善勿噴 效果預覽:http://wjf444128852.github.io/demo02/snow/ind ...
  • 學習要點: 1.案例內容 2.關於內容 主講教師:李炎恢 本節課我們製作一下子案例欄目和關於欄目。 一.案例內容 //案例內容 1-4 個根據不同顯示比例展示 //CSS 部分 二.關於欄目 //左右兩欄即可 //CSS 部分 ...
  • 自動佈局 1 什麼是自動佈局? UI 根據不同尺寸的屏幕動態的佈局控制項大小. 2 作用 適配所有機型 3 佈局中常用的參數 autoResizing就是一個相對於父控制項的佈局解決方法;由於它只能相對父控制項佈局;因此不能約束子控制項之間關係. 所以出現了aotolayout,既可以設置父子控制項之間的關係 ...
  • 鍵路徑 在一個給定的實體中,同一個屬性的所有值具有相同的數據類型。 鍵-值編碼技術用於進行這樣的查找—它是一種間接訪問對象屬性的機制。 - 鍵路徑是一個由用點作分隔符的鍵組成的字元串,用於指定一個連接在一起的對象性質序列。第一個鍵的性質是由先前的性質決定的,接下來每個鍵的值也是相對於其前面的性質。 ...
  • 自定義 cell 1 什麼是自定義 cell 自定義 cell 即 tableView,collectionView,scrollView中的 cell 使用的時候不能滿足我們使用 cell 的需求,需要自己定義一個 cell. 2 cell 的重用 原因:cell 的顯示原理的,一個 cell 顯 ...
  • 當前蘋果已經禁止了,通過IOS應用直接跳轉APP下載鏈接的方法。但是仍然可以使用另外一種方法直接跳轉AppStore。 這種方法需要增加一個類庫StoreKit.framework。 這裡使用這功能是為用戶提供更新,下麵說下我實現這個功能的詳細步驟。 一、增加一個網頁到伺服器上去,title增加你當 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...