『壹』 UI設計師需要完成資料庫設計嗎
不需要。
在開發當中,第一件事就算根據UI設計師的設計圖片來進行資料庫的定製,定製資料庫是整個開發首當其沖最為重要一層,就好比基建的地基一樣,一旦沒有建設好,重蹈覆徹的時間、精力成本將會大大的增加。在項目初期務必和團隊協商完成資料庫的設計。
當前UI設計師的工作內容也可細分為五種,軟體界面的美術設計、創意工作和製作工作,根據各種相關軟體的用戶群,提出構思新穎、有高度吸引力的創意設計,對頁面進行優化,使用戶操作更趨於人性化,維護現有的應用產品,收集和分析用戶對於GUI的需求。
『貳』 IOS開發要學習哪些方面的知識
第一步:編程入門課
時間預計:4個星期
推薦看公開課,Udacity也行,網易公開課也行,自己找一個面對對象語言(一般是JAVA, C++, Python)的課。我是在網易公開課看的斯坦福的CS106A,學的JAVA。
如果你純粹學iOS開發,不推薦看哈佛CS50,CS50是給CS系的學生介紹整個計算機世界的框架,講的內容比較多,進度比較快,對iOS開發其實有點累贅了。(臣妾有點跟不上啊!!)
計劃安排是一天一課,看課程要求的書(至少看完一本)及大部分作業。這一階段重點不是語法,而是以下3個目標。
目標:
1. 讓自己對編程這件事感到適應。
寫hello world。
怎麼寫function, 怎麼調用function。
全局變數,局部變數這類基本知識點。
都是基本的東西。看看書,寫多兩個程序就歐啦。
2. 掌握編程語言的基本要素。
編程語言4個要素:
a. 基本的數據類型:整數,實數,character, string, boolean
b. 基本的運算符號:+-×/><++--那啥的
c. 怎樣輸入輸出
d. 怎樣控製程序:sequence,selection,loop
3. 了解編程範式
面對過程編程。
面向對象編程。
第二步:上手iOS!
時間預計:2星期
強烈推薦CS193P,老頭子講的超級好!我的很多東西(對象思維啥的)是在這里跟著做練習的時候才真正明白的(好啦,也可能是上一堂課練習做得少的原因)。如果等到9月應該itunes U上會開始教iOS 7了。網易公開課的是2010年iOS 5版的,前10堂課,也行。(iTunes U上有完整的課)
CS193P說有prerequisite,一開始被嚇到,事實證明還是可以學下去的。頭兩節課一頭霧水,沒關系,把itunes U上的課件下載下來,把所有代碼打出來,然後一個個元素對應之前學的語言匹配,再不懂先放著,繼續學後邊的,過幾天打多點代碼就懂了。
感覺學5、6堂課,一個星期左右就可以開始進入下一階段自己做東西了。之後用啥學啥,每堂課都有主題的。速度慢點的同學們,這階段跟我一樣准備兩個星期吧!
第三步:開發app!
時間預計:2星期(本人...1個半月,實在不好意思說出口)
這個時間就可長可短啦,還包括美工,交互啥的。堅持要用啥學啥的原則,其實就是知道iOS SDK都有什麼組件,每個組件有什麼function而已。stackoverflow, Github, apple sample code多上,搜索引擎多用。如果有個師傅,這個階段真的是進步神速。
好的!不出意外,你的第一個app就這么新鮮出爐了!從今天開始,成為一個冷艷逼格高尚的iOS開發者吧!
『叄』 UI設計常用的UI控制項有哪些
uI控制項的三要素:繪制、數據、控制。
『肆』 安卓如何獲取程序最上層ui控制項信息,比如說控制項上的文本內容
比較簡單的寫法,在你需要讀取的時候,直接string str="";this.Invoke((EventHandler)(delegate{ // 這里寫你的控制項代碼,比如 //str= target.SelectedText; }));至於普通的寫法怎麼寫,你搜索一下C#跨線程訪問就算。
『伍』 如何實時更新ui,datagridview 跨線程訪問控制項
很多時候,我開發軟體的時候需要開啟線程到後台處理大數據,不斷更新資料庫,但又要同時修改前台UI,比如迅雷的下載任務,開多個線程去下載,顯示層UI也要同時體現給用戶知道,顯示當前用戶下載進度等,這樣必須用到多線程,但是C#中多線程處理問題涉及到一個「界面控制項不能跨線程」,因為微軟認為這樣會導致線程不安全問題,那麼我們一般怎麼處理這樣的問題,既要處理數據,又要實時顯示 。轉載
看設計界面
資料庫用到的是sqlite 英文sqlite是多線程的 但同一時間只能一個線程操作資料庫,
所以要用到線程同步問題
我用LOCK進行線程同步處理
lock (ModifStatic.o)
{
queue = queueBLL.GetModel(i);
queueNew = queue;
queueNew.remainNum++;
queueBLL.Update(queueNew);
}
這里又一點要注意
因為lock 裡面的對象必須是一個對象,而且是全局 的 所以我吧它放到一個靜態類裡面
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test.BLL
{
public static class ModifStatic
{
private static int id = 1;
public static int Id
{
get { return ModifStatic.id; }
set { ModifStatic.id = value; }
}
public static object o = new object();
}
}
這個靜態類還有一個 就是記錄當前是修改哪一個id的數據的
這樣我們就可以只針對某個row進行修改 而不是全部整個datagridview修改,否則就顯得很卡
用戶會感覺界面一閃一閃的
這個程序是模擬的
寫一個類來專門處理修改資料庫的 開一個線程用來處理
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test.BLL
{
[Serializable]
public class ChangeDB
{
int i = 0;
Random r = new Random();
Test.Model.queue queue = null;
Test.Model.queue queueNew = null;
Test.BLL.queue queueBLL = new Test.BLL.queue();
public void DBAdd()
{
while (true)
{
i = r.Next(1,8);
lock (ModifStatic.o)
{
queue = queueBLL.GetModel(i);
queueNew = queue;
queueNew.remainNum++;
queueBLL.Update(queueNew);
}
ModifStatic.Id = i;
System.Threading.Thread.Sleep(5000);
}
}
}
}
主頁面UI
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsFormsApplication1
{
[Serializable]
public partial class FormMain : Form
{
Test.Model.queue queue = null;
Test.BLL.queue queueBLL = new Test.BLL.queue();
Test.BLL.ChangeDB changeDbBLL = new Test.BLL.ChangeDB();
private delegate void myDelegate(int id);//定義委託
//初始化UI
public FormMain()
{
InitializeComponent();
this.dataGridView1.DataSource = queueBLL.GetAllList();
this.dataGridView1.DataMember = "ds";
}
//啟動更新線程
Thread myThread;
private void FormMain_Load(object sender, EventArgs e)
{
myThread = new Thread(startFillDv);//實例化線程
myThread.IsBackground = true;
myThread.Start();
}
//不斷更新UI
private void startFillDv()
{
while (true)
{
lock (Test.BLL.ModifStatic.o)
{
Grid(Test.BLL.ModifStatic.Id);
}
Thread.Sleep(3000);//更新頻率為3秒
}
}
//更新UI
private void Grid(int id)
{
if (this.InvokeRequired)
{
this.Invoke(new myDelegate(Grid), new object[] { id });
}
else
{
try
{
//修改改id對應的行
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
if (Convert.ToInt32(this.dataGridView1.Rows[i].Cells[0].Value) == id)
{
queue = queueBLL.GetModel(id);
this.dataGridView1.Rows[i].Cells[1].Value = queue.remainNum;
}
}
}
catch
{
}
}
}
//結束線程
private void FormMain_FormClosed(object sender, FormClosedEventArgs e)
{
if (this.myThread.IsAlive)
{
this.myThread.Abort();
}
}
//修改資料庫
Thread th = null;
private void buttonModif_Click(object sender, EventArgs e)
{
th = new Thread(new ThreadStart(changeDbBLL.DBAdd));
th.IsBackground = true;
th.Start();
}
}
}
『陸』 c#怎麼根據資料庫的變化來控制用戶控制項數量顯示與ui界面
mvc的話在js中設置,每隔幾秒通過ajax進行查詢資料庫,根據結果進行相應操作;
winform或webform直接在後台進行上述操作