1. uitableview的背景顏色怎麼設置
tableView.backgroundColor = [UIColor greenColor]改變整個tableView的顏色,對於tableViewCell,我們不應該直接使用cell.backgroundColor。Cell本身是一個UIView,我們所看到的部分其實只是它的一個Subview,也就是cell.contentView。所以,如果直接改變cell本身的背景色,依然會被cell.contentView給覆蓋,沒有效果。
cell.contentView.backgroundColor = [UIColor blueColor];
Cocoa提供的按鈕背景色為透明。因為ContentView被移開,下面是tableView的顏色,已經不是cell的一部分了。
所以,最好的方式應該是通過cell.backgroundView來改變cell的背景。按照文檔說明,backgroundView始終處於cell的最下層,所以,將cell里的其它subview背景設為[UIColor clearColor],以cell.backgroundView作為統一的背景,應該是最好的方式。
2. 如何在UIView的drawRect函數裡面設置背景為透明
最好的辦法是為ViewController定義自己的MyView類,MyView派生於UIView, 然後myViewController.view = [[[MyView alloc] init] autorelease] 在派生類MyView中重載drawRect方法就可以了
3. 開發iphone的游戲時,怎麼把游戲背景設置自己想要的圖片求代碼參考
lz用什麼引擎的?cocos2d?如果是的話就是載入一幅與游戲區域等大小的圖片即可 。
那更簡單了,別用導航欄,同時隱藏狀態欄,弄一個imageView弄的和游戲場景一樣大,載入一個圖片放到最底層就好了
回復 zhuxurong123:這個就要用到touchesmoved(好像叫這個,你看看api)。通過這個方法的參數可以獲得手指在屏幕上的位置,每次手指移動都會調用這個方法。在這個方法里記錄下每次手指的位置然後對你想要移動的uiview或其子類創建一個移動動畫(在動畫開始前記得停止本view的所有動畫,否則移動路徑就亂了),這樣做可以做出view跟隨手指移動的效果,或者更簡單一點,通過手指位置坐標點直接設置view坐標,也可以達到view隨手指移動的效果
#pragma mark - Finger Move View
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSArray *pointArray = [touches allObjects];
UITouch *touch = [pointArray objectAtIndex:0];
CGPoint pointInView = [touch locationInView:self.view];
self.curView.center = pointInView;
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSArray *pointArray = [touches allObjects];
UITouch *touch = [pointArray objectAtIndex:0];
CGPoint pointInView = [touch locationInView:self.view];
self.curView.center = pointInView;
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0.f, 0.f, 60.f, 60.f)];
newView.backgroundColor = [UIColor orangeColor];
self.curView = newView;
[self.view addSubview:newView];
newView = nil;
}
4. ios uiview 使用cashapelayer 為什麼設置不了背景色了
UIView *view = [[UIView alloc] initWithfram(cgrectmake(100,100,100,100))] [self.view addsubview:view] 不知道單詞有沒有敲錯,大小寫沒改,你自己處理吧,顏色什麼的基本屬性都可以隨便改的
5. 如何為UITableViewController設置整體的背景圖
我的方法是,在添加TABLEVIEW的地方,替換成一個新的VIEW,把圖的VIEW+TABLEVIEW一起加入去,不過下面的方法更好。
UIView * viewTemp=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320,480)];
UITableView * tableTemp=self.tableView;
self.view=viewTemp;
[self.view addSubview:imageBack];
[self.view addSubview:tableTemp];
[imageBack release]
這樣,問題完美解決
分析:
UITableViewController的子類中通過self.view返回的是UITableView,所以把他替換程UIView再把UITableView加入就OK zz轉載
6. 在uiview怎麼設置背景顏色
利用的UIView的設置背景顏色方法,用圖片做圖案顏色,然後傳給背景顏色。
UIColor *bgColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"bgImg.png"];
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,480)];
[myView setBackGroundColor:bgColor];
7. objective-c問題,為UIViewController添加背景
把代碼放在viewDidLoad中試試。
補充:
如果不寫loadView方法,self.view會指向一個默認的view,如果你不想用默認的view,可以寫loadView方法,所以在loadView方法中要創建一個新view,然後self.view = newView;上面的那段代碼錯誤的原因,沒有指定新的view。
下面的這個方法,bgImage和bgColor創建的時候都沒有用到alloc、、new等方法,但你卻對其發送了release方法,這是下面的方法沒成功的方法。
還有一點是下面的方法中的frameView需要release一下。
8. IOS 如何讓背景圖鋪滿這個屏幕
不要使用setBackGroundColor:,直接使用設置背景圖setbackground就可以,會自動拉伸,參數是傳入一個Imgage,你現在的這種方式,是鋪滿的形式,如果你這個圖很小,就會很多很多重復的圖組成。
9. 1,searchbar怎樣去掉背景的顏色storyboard里只能設置background
1,Search Bar 怎樣去掉背景的顏色(storyboard里只能設置background顏色,可是發現clear Color無法使用)。
其實在代碼里還是可以設置的,那就是刪除背景view
[[self.searchBar.subviews objectAtIndex:0] removeFromSuperview];
2,NSDate:
字母 日期或時間元素 表示 示例
G Era 標志符 Text AD
y 年 Year 1996 96
M 年中的月份 Month July; Jul; 07
w 年中的周數 Number 27
W 月份中的周數 Number 2
D 年中的天數 Number 189
d 月份中的天數 Number 10
F 月份中的星期 Number 2
E 星期中的天數 Text Tuesday; Tue
a Am/pm 標記 Text PM
H 一天中的小時數(0-23) Number 0
k 一天中的小時數(1-24) Number 24
K am/pm 中的小時數(0-11) Number 0
h am/pm 中的小時數(1-12) Number 12
m 小時中的分鍾數 Number 30
s 分鍾中的秒數 Number 55
S 毫秒數 Number 978
z 時區 General time zone Pacific Standard Time; PST; GMT-08:00
Z 時區 RFC 822 time zone -0800
[注意]在開發中,如果使用年月日,用NSDateFormatter setFormat :@"yyyy-MM-dd",如果是使用小時和分鍾,設置為:"HH:mm",切記不要設置「HH-mm」,這樣會出錯的。
舉例:
//創建一個時間對象
NSData * date = [NSDate date];
//列印時間
NSLog(@"today is %@",date);
//再獲取的時間date減去24小時的時間(昨天的這個時候)
NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-(24*60*60)];
NSLog(@"yesterday is %@",yesterday);//列印昨天的時間
/*字元串換成時間*/
//設置一個字元串的時間
NSString *datestring = [NSString stringWithFormat:@"1999-09-03"];
//想要設置自己想要的格式,可以用nsdateformatter這個類,這里是初始化
NSDateFormatter * dm = [[NSDateFormatter alloc]init];
//指定輸出的格式 這里格式必須是和上面定義字元串的格式相同,否則輸出空
[dm setDateFormat:@"yyyy-MM-dd"];
//把字元串的時間轉換成Date對象,用dateFromString方法
NSDate * newdate = [dm dateFromString:datestring];
//輸出
NSLog(@"newdate is %@",newdate);
/*把時間轉換成字元串*/
//把Date對象轉換成String對象 用stringFromDate方法
NSString * datestring2 = [dm stringFromDate:newdate];
//列印
NSLog(@"datestring2 is %@",datestring2);
3,如果使用 UTTabviewCell,設置其accessory樣式為:Detail Disclosure ,就是在每一個cell右邊設置一個detail button。如果這樣的操作是使用storyboard,進行的,它會要求你給每一個你cell設置indentifier,然後你會在以下方法內設置重用indentfier,別忘記加上一句話,否則編譯運行時可能會彈出: cell未實例化
4,在開發項目中,有時有這樣的需求:運行程序,登陸界面是一個自由的ViewController,只是擺放幾個TextField和button,點擊後跳轉到孩子選擇或其它選擇界面,點擊選項後進入我們的主界面:這個時候,在登陸界面作跳轉時,會有好多的方法,如果使用storyboard,就比較方便了,設置一個segue,跳轉代碼中:
[self PerformSegueWithIdentifier:@"targetViewController",self]; 就可以了,可是我想實例化想要跳轉的控制器,然後設置某一屬性的值,這樣跳轉後控制器獲取那個屬性,就會得到值了,可是這樣做會有一個問題:
主界面控制器如果使用了navigatorViewController,並且是其RootViewController,等到在主界面設置功能,點擊某一功能,想push到一個新頁面時,問題就來了,你會發現毫無反應,沒有報錯,只是segue無法跳轉。後來終於找到原因:就是我在登陸控制器跳轉時沒有使用segue的方法,而是用代碼self.storyboard,載入一個新類,具體原理目前還沒有搞明白,先把出問題的代碼記錄下來,回頭補之:
代碼這樣做,會導致其後無法使用navigatorViewController做push跳轉
5,(1010更新)開發過程中,我們通過http請求,後台返回json數據,而有時數據里某一欄位的值為null~,然後我們把此值賦值給NSArray,NSdictionary,或是NSString,然後我們會判斷此值為null時,所做的處理,而通常慣性思維判斷時我們都會寫:if(dict == nil)或是if(dict == Nil)或是if(dict == NULL)再或是if(dict isEqual nil),我們發現,都不好用,根本沒有起到判斷的作用~後來我才發現,原來不能這樣來判斷。
簡單點說,就是當字典,數組為null時,後台列印的輸出結果是這樣:
然後,我們需要在代碼判斷時利用[NSNull null]來判斷,具體如:
isEqual:[NSNull null] 就搞定了,nsarray也是同樣的道理。
控制台列印:str=(null) 代表著 字元串或數組或字典是一個空指針,(而非空字元串)判斷的時候,直接用:
if(str == nil)就可以了。如下圖所示:
而控制台列印:str = <null>,代表著這是一個空字元串,賦值為空,指針是存在的,只是內容為空,這種判斷需要使用:
if(str is equal [NSNull null ]) ,因為在ios上,內容為空不能簡單的判斷str==null(null 在ios上得用[NSNull null])
一般這種情況是,伺服器那邊是null,直接返回@"null"的字元串,這樣在ios這邊不好判斷,最好跟後台溝通,如果遇到null值,返回@"",好做判斷
6,給uiview設置圓角樣式
只需在載入時,添加這樣的話就可以了:
testView.layer.cornerRadius = 6;
testView.layer.masksToBounds = YES;
注意,需要 import <QuartzCore/QuartzCore.h> 導入,否則,不能識別cornerRadius和masksToBounds。
uiview設置背景圖片:
[theMainView setBackgroundColor: [UIColor colorWithPatternImage: [UIImage imageNamed: @"bg.png"]]];
imageName 緩存,下面方法不緩存
NSString *thePath = [[NSBundle mainBundle] pathForResource:@"default" ofType:@"jpeg"];
UIImage *prodImg = [[UIImage alloc] initWithContentsOfFile:thePath"];
controller.proctImg.image = prodImg;
[prodImg release];
7,隱藏鍵盤的兩種方法
1-1Did End On Exit 調用下面事件當點擊鍵盤return得時候就會隱藏鍵盤
- (IBAction)textFieldShouldReturn:(UITextField *)textField {
//[sender resignFirstResponder];
if (textField == chi) {
[chi resignFirstResponder];
double m=[chi.textdoubleValue]/3.003;
double f=m *3.2808;
meter.text=[[NSStringalloc] initWithFormat:@"%.4f",m];
feet.text=[[NSStringalloc] initWithFormat:@"%.4f",f];
}
if (textField == meter) {
[meter resignFirstResponder];
}
if (textField == feet) {
[feet resignFirstResponder];
}
}
1-2 點擊屏幕得時候隱藏鍵盤
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch=[[event allTouches] anyObject];
if (touch.tapCount >=1) {
[chi resignFirstResponder];
[meter resignFirstResponder];
[feet resignFirstResponder];
}
}
1-2的方法相當於屏幕任何位置的點擊事件(除了各組件的點擊處)可以在這個方法里執行要隱藏或remove的view。
8,UITextField密文顯示輸入內容:
只需要在TextField屬性中的Secure(安全的)勾選上就可以了。顯示apple默認的密文顯示方式。
9,通過系統自帶的NSPredicate使用正則表達式。(在TextField中)
NSString *regex =[NSString stringWithFormat:@"^1(3[4-9]|5[012789]|8[2378]|47)\\d{8}$"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
BOOL isMatch = [predicate evaluateWithObject:editPhoneField.text];
10,項目設置應用程序顯示名稱:
1,在項目的Supporting Files下尋找infoPlist.strings文件,打開後會看到一片空白(英文默認是跟隨項目名稱顯示)。此時,可以就地添加一句代碼:CFBundleDisplayName="愛貝通";
這樣的話,無論手機設置英文語言還是中文語言,應用程序都會顯示設置的名稱。
2,為了國際化而言,我們最好創建一個chinese專有的infoPlist.strings文件。
如上圖所示,添加一個中文的plist
然後打開添加代碼:
這個時候,大功告成。部署在模擬器或真機中吧,你的手機設置(中/英)文語言,它就會調用相應的配置文件。