1.打印:
有时候在查找错误的时候经常会需要打印一些变量,根据变量的不同类型采取不同的打印方法,下面举2个经常用到的例子:
(1)打印frame:
UIView *view=[[UIView alloc]initWithFrame:CGRectMake(20,30,40,50)];
NSLog(NSStringFromCGRect(view.frame),nil);
打印结果如下:
(2)标准化打印字符串:
NSString *string=@"5";
NSString *string1=[NSString stringWithFormat:@"%@元",string];
NSLog(@"string1:%@",string1);
打印结果如下:
(3)打印BOOL类型用%d
2.有关button的点击事件
自定义一个button:
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(2, 2,30,30)];
[button addTarget:self action:@selector(sideButtonsClicked:)forControlEvents:UIControlEventTouchUpInside];
button.tag =1;
//button点击事件,要通过btn的tag识别,此时sender是id类型的,要进行强制类型转化才可以使用其tag属性
-(void)sideButtonsClicked:(id)sender{
UIButton *button=(UIButton *)sender;
if (button.tag==1) {
NSLog(@"tag:%d",button.tag);
}
}
3.有nib文件时的初始化
注意在
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
方法里进行nib的初始化是没有效果,不执行的。应该在
-(void)awakeFromNib方法里面进行初始化。这是系统自带的函数。但是若没有nib文件,就不能再用这个方法。得自己写个初始化方法
4.有时候要实现label显示的文字颜色颜色不一样的效果,如图所示:
,那么应该如何更加简洁的实现呢?
解决办法如下:
(1)首先在工程中导入包:Build Phases——>点击“+”——>找到CoreText.framework这个包,把它加进工程中
(2)导入两个文件TTTAttributedLabel.h和TTTAttributedLabel.m,这两个文件请到
http://download.csdn.net/detail/xumingwei12345/6827723
下载即可
(3)在你所要实现这种效果的.h文件里面
导入TTTAttributedLabel.h文件:#import"TTTAttributedLabel.h"
定义一个继承TTTAttributedLabel的变量:TTTAttributedLabel *songJfbNumLabel;
在你所要实现这种效果的.m文件里面初始化:
songJfbNumLabel = [[TTTAttributedLabel alloc]initWithFrame:CGRectMake(51,29,196,14)];//初始化
[songJfbNumLabel setFont:[UIFont boldSystemFontOfSize:14]];//设置字体14号加粗
songJfbNumLabel.textAlignment =UITextAlignmentLeft;//设置文字左对齐
[songJfbNumLabel setBackgroundColor:[UIColor clearColor]];
songJfbNumLabel.textColor = [UIColor blackColor];//设置整个label字体的颜色为黑色
[selfaddSubview:songJfbNumLabel];
//处理label的显示样式:文字为黑色,数字为红色
NSString *songNum=@"60";
NSString *text2 = [NSString stringWithFormat:@"送%@个",songNum];//songJfbNumLabel上面将要显示的文字内容
[songJfbNumLabel setText:text2 afterInheritingLabelAttributesAndConfiguringWithBlock:^NSMutableAttributedString *(NSMutableAttributedString *mutableAttributedString) {
[mutableAttributedString addAttribute:(NSString*)kCTForegroundColorAttributeNamevalue:(id)[UIColor redColor].CGColorrange:NSMakeRange(text2.length-1-songNum.length,songNum.length)];//redColor代表个数的颜色;NSMakeRange()是一个区间,代表显示红色部分的范围
return mutableAttributedString;
}];
5.如何给label上的文字加上2像素的白色投影
label自带的属性:
只需要将(1)shadow选项变为:whiteColor (2)将Vertical选项变为:2
6.如何在定义一个属性的时候更加便捷
以前:我们通常会在.h文件里面:
UIButton *button;
@property(nonatomic ,retain)IBOutletUIButton *button;
在.m文件里面
@synthesize button;
[button release];
在xib文件里面连接操作现在:我们可以采取以下办法快速简洁的定义一个属性并且建立连接
(1)在工程的最右边选中像人体器官的图形
(2)选中以后视图会变成下面的样子。然后拖一个button控件到xib文件上面
(3)按住Ctrol键,用鼠标将xib文件上面button控件拖拽到.h文件的UIViewController里面
(4)完成(3)操作以后会发现弹出一个窗口,在里面输入变量的名称即可,例如“connectBtn”
(5)完成(4)以后,点击connect键。会出现下面所示的图。至此定义变量和建立连接全部完成。你不用在写任何代码,也不用释放。点击.m文件你会发现dealloc方法里面 已经帮你释放了。
7.在ios7上怎样实现创建的工程有xib文件
(1)File——>New——>Project——>Empty Application
(2)New File——>Objective-C class
(3)在AppDelegate.m里面用代码建立连接
(4)将新建的NewViewController.xib背景变为红色,可以看到效果如下:
8.UILabel属性的设置
字号:一般情况下使用的是systemFontOfSize,比如设置字号是15.那么可以设置如下
label.font=[UIFont systemFontOfSize:15];
如果要设置加粗15号,那么可以设置如下:
label.font=[UIFont boldSystemFontOfSize:15];