【代碼筆記】柱狀圖

来源:http://www.cnblogs.com/yang-guang-girl/archive/2016/08/05/5739823.html
-Advertisement-
Play Games

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


一,效果圖。

二,工程圖。

三,代碼。

RootViewController.h

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

@interface RootViewController : UIViewController
{
    UIView* zhuView;
}

@end
複製代碼

 

RootViewController.m

複製代碼
#import "RootViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController

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

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    self.title=@"柱狀圖";
    self.view.backgroundColor=[UIColor greenColor];
    
    
    [self initZhuView:[NSArray arrayWithObjects:@"10",@"20",@"30",@"40",@"50",@"60",@"70",@"80",@"90",nil]];
    
}
#pragma -mark -柱狀圖初始化
- (void)initZhuView:(NSArray*)days
{
    
    if ([[UIScreen mainScreen] bounds].size.height > 480) {
        zhuView = [[UIView alloc] initWithFrame:CGRectMake(0, 310 - 45 + 50, 320, 150)];
    }
    else
    {
        zhuView = [[UIView alloc] initWithFrame:CGRectMake(0, 310 - 45, 320, 150)];
    }
    //柱狀圖所在的背景圖
    [self.view addSubview:zhuView];
    
    //0天,50天,100天所在的豎線
    UIView* shuView = [[UIView alloc] initWithFrame:CGRectMake(55, 0, 1, 120)];
    [shuView setBackgroundColor:[UIColor orangeColor]];
    [zhuView addSubview:shuView];
    
    //0-9所在的橫線
    UIView* hengView = [[UIView alloc] initWithFrame:CGRectMake(CGRectGetMinX(shuView.frame), CGRectGetMaxY(shuView.frame), 320 - CGRectGetMinX(shuView.frame) - 20, 1)];
    [hengView setBackgroundColor:[UIColor orangeColor]];
    [zhuView addSubview:hengView];
    
    
    NSArray* titles = [NSArray arrayWithObjects:@"100天",@"50天",@"0天", nil];
    for (int i = 0 ; i < 3; i++) {
        //天數所在Label
        UILabel* yibaiLb = [[UILabel alloc] initWithFrame:CGRectMake(0, 5 + i* 50, 53, 15)];
        [yibaiLb setText:[titles objectAtIndex:i]];
        [yibaiLb setTextAlignment:NSTextAlignmentRight];
        [yibaiLb setFont:[UIFont systemFontOfSize:14]];
        [yibaiLb setBackgroundColor:[UIColor clearColor]];
        [zhuView addSubview:yibaiLb];
    }
    
    for (int i = 0; i < [days count]; i++) {
        
        int height = [[days objectAtIndex:i] intValue];
        if(height>=100)
            height=100;
        
        //紅色的豎線的柱狀圖
        UIImageView* imageView = [[UIImageView alloc] initWithFrame:CGRectMake(CGRectGetMaxX(shuView.frame) + 10 + i*25, CGRectGetMinY(hengView.frame) - height, 15, height)];
        [imageView setBackgroundColor:[UIColor redColor]];
        [zhuView addSubview:imageView];
        
        //柱狀圖上的紅色的數字Label
        UILabel* dayLB = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMinX(imageView.frame) - 5, CGRectGetMinY(imageView.frame) - 10, 25, 10)];
        [dayLB setTextAlignment:NSTextAlignmentCenter];
        [dayLB setBackgroundColor:[UIColor clearColor]];
        [dayLB setFont:[UIFont systemFontOfSize:10]];
        [dayLB setText:[NSString stringWithFormat:@"%d",[[days objectAtIndex:i] intValue]]];
        [zhuView addSubview:dayLB];
        
        //1-9的數字所在的Label
        UILabel* diLb = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMinX(imageView.frame), CGRectGetMaxY(hengView.frame) , 15, 20)];
        [diLb setText:[NSString stringWithFormat:@"%d",i+1]];
        [diLb setBackgroundColor:[UIColor clearColor]];
        [diLb setTextAlignment:NSTextAlignmentCenter];
        [diLb setFont:[UIFont systemFontOfSize:14]];
        [zhuView addSubview:diLb];
    }
}
複製代碼

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • w3school:http://www.w3school.com.cn/ runoob:http://www.runoob.com/ html標簽參考手冊:http://www.runoob.com/tags/html-reference.html html顏色名:http://www.runoob ...
  • 在講解如何選取文檔元素之前,先普及一下什麼是文檔節點: HTML文檔的每個節點都表示一個Node對象,節點樹形結構的根部是Document節點,代表整個文檔,代表HTML元素的節點是Element節點,代表文本的節點是Text節點;Document、Element、Text類都是Node類的子類;( ...
  • 1.HTML基本結構 <!DOCTYPE html> <!DOCTYPE> 聲明位於文檔中的最前面的位置,處於 <html> 標簽之前。此標簽可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規範。 <html> 定義整個HTML文件的內容;所有HTML標簽都應該放到這裡面。 <head> 定義H ...
  • 【1】0,NaN,“”,null,undefined,false的比較;【2】更換字元串中指定的字元;【3】對象的索引(屬性名)為數字時的註意事項 ...
  • 前言 今天項目中做一個圖片效果展示,需要實時從後臺獲取圖片數據,前段做展示。想想用到隊列,比較好實現這個功能,只需要展示隊列里的數據就可以了。於是寫了個js 對列. js code 如果我們傳入 參數就會設置 隊列的大小,不設置隊列無窮大小 測試 不初始化隊列大小 //初始化沒有參數的隊列 var ...
  • <form>表單 name 表單的名稱 action 表單的提交地址 target 打開方式 enctype MIME類型 method 表單數據提交方式,get:在url地址上面傳送參數到伺服器,post:在後臺傳送參數到伺服器 <label> label元素不會向用戶呈現任何特殊效果,不過它為鼠 ...
  • For迴圈九九乘法表 for迴圈是javascript中一種常用的迴圈語句,可以很好的解決在程式中需要重覆執行某些語句,利用for迴圈實現簡單的“九九乘法表”的效果: 讓迴圈從小到大,依次排序,並計算每次的結果,並用 table 使之排列出來。 代碼很少,相對很簡單,也都是基礎,通過簡單的迴圈實現這 ...
  • jquery學習筆記 1.環境搭建 進入官方網站獲取最新的版本 http://jquery.com/download/ ,這裡需要註意 jQuery 分 2 個系列版本 1.x 與 2.x,主要的區別 在於 2.x 不再相容 IE6、7、8 為移動端而優化,由於減少了一些代碼,使得該版本比 jQue ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...