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
然后打开添加代码:
这个时候,大功告成。部署在模拟器或真机中吧,你的手机设置(中/英)文语言,它就会调用相应的配置文件。