UIView
1. UIView *vv = [[UIView alloc]initWithFrame:CGRectMake(100,100, 100, 30)];
[vv.layer setBorderWidth:2];
vv.backgroundColor = [UIColor redColor];
[vv.layer setBorderColor:[UIColor orangeColor].CGColor];
[self.view addSubview:vv];
2.删除父视图上的子视图
@1 for(id obj in bottom.subviews)
{
[obj removeFromSuperview];//遍历删除子视图
}
@2[view.subviews makeObjectsPerformSelector:
@selector
(removeFromSuperview)];
3.旋转圈
UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];//指定进度轮的大小
[activity setCenter:CGPointMake(190, 330)];//指定进度轮中心点
activity.tag = 3;
activity.backgroundColor = [UIColor redColor];
[activity setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];//设置进度轮显示类型
activity.layer.masksToBounds = YES;
[activity startAnimating];
[self.view addSubview:activity];
UINavigationController
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeSystem];
//[UIButton buttonWithType:UIButtonTypeCustom];//显示真实图标颜色
myButton.frame = CGRectMake(, , , );
// myButton.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"home"]];
[myButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];//建议使用方式
// [myButton setTitle:@"返回" forState: UIControlStateNormal] ;
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]initWithCustomView:myButton];
UIButton *myButton1 = [UIButton buttonWithType:UIButtonTypeSystem];
myButton1.frame = CGRectMake(, , , );
// myButton.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"login"]];//无点击效果,保留色彩
[myButton1 setImage:[UIImage imageNamed:@"home"] forState:UIControlStateNormal];//建议使用方式
// [myButton setTitle:@"返回" forState: UIControlStateNormal] ;
UIBarButtonItem *backButton1 = [[UIBarButtonItem alloc]initWithCustomView:myButton1];
self.navigationItem.leftBarButtonItem = backButton;
self.navigationItem.rightBarButtonItem = backButton1;
设置UIImage的渲染模式:UIImage.renderingMode
着色(Tint Color)是iOS7界面中的一个.设置UIImage的渲染模式:UIImage.renderingMode重大改变,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:,它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:
- UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。
- UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。
- UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。
ios中颜色渐变效果
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.view.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor redColor] CGColor], (id)[[UIColor whiteColor] CGColor], nil,nil];
[self.view.layer insertSublayer:gradient atIndex:0];
//查找一个父视图上的子视图类型
//便利所有的子视图
for (id view in self.view.subviews) {
//判断子视图是否是tableview
if ([view isKindOfClass:[UITableView class]]) {
//如果是tableview,就reload
[view reloadData];
}
}
typeof
__weak __typeof(self)weakSelf = self;//声明了一个self类型的 weak指针 weakSelf
/*
typeof(self) 是获取到self的类型,这样定义出的weakSelf就是和self一个类型的, 加上__weak是建立一个弱引用,整句就是给self定义了一个若引用性质的替身;
这个一般用在使用block时会用到,因为block会copy它内部的变量,可能会造成引用循环,使用__weak性质的self替代self,可以切断block对self的引用,避免循环引用
*/
自定义代理设计时,代理方法调用时,应该判断有无此方法
if (self.delegate && [self.delegate respondsToSelector:@selector(sliderValueChanged:/*一个自定义方法*/)]) {
[self.delegate sliderValueChanged:self];
}
UILable实现自适应高度
- (void)initUserInterface
{
UILabel *label = [[UILabel alloc]init];
label.numberOfLines = ; // 需要把显示行数设置成无限制
label.font = [UIFont systemFontOfSize:];
label.textAlignment = NSTextAlignmentCenter;
label.text = @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
CGSize size = [self sizeWithString:label.text font:label.font];
label.bounds = CGRectMake(, , size.width, size.height);
label.center = self.view.center;
[self.view addSubview:label]; }
// 定义成方法方便多个label调用 增加代码的复用性
- (CGSize)sizeWithString:(NSString *)string font:(UIFont *)font
{
CGRect rect = [string boundingRectWithSize:CGSizeMake(, )//限制最大的宽度和高度
options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesFontLeading |NSStringDrawingUsesLineFragmentOrigin//采用换行模式
attributes:@{NSFontAttributeName: font}//传人的字体字典
context:nil]; return rect.size;
}
TableView行高自适应
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 行宽
CGFloat contentWidth = self.view.frame.size.width;
// 字体
UIFont *font = [UIFont systemFontOfSize:];
// 计算出显示完內容需要的最小尺寸
CGRect rect = [string boundingRectWithSize:CGSizeMake(contentWidth, 1000.0f) //限制最大的宽度和高度
options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesFontLeading |NSStringDrawingUsesLineFragmentOrigin//采用换行模式
attributes:@{NSFontAttributeName: font}//传人的字体字典
context:nil];
// 返回组要的高度
return rect.size.height+;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString * CellIdentifier = @"Cell";
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
// 实例化单元格对象
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
// 设置显示文字
cell.textLabel.text = string;
// 设置自动换行
cell.textLabel.numberOfLines = ;
// 字体与计算字符显示框架大小那边的要一致
cell.textLabel.font = [UIFont systemFontOfSize:];
}
1 如何让tableView中cell的线左端顶头?
2 第一步,创建完tableView之后加上一下代码
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0){
if ([listTableView respondsToSelector:@selector(setSeparatorInset:)]) { [listTableView setSeparatorInset:UIEdgeInsetsZero]; } if ([listTableView respondsToSelector:@selector(setLayoutMargins:)]) { [listTableView setLayoutMargins:UIEdgeInsetsZero];
}
}else{
[listTableView setSeparatorInset:UIEdgeInsetsMake(,,,)]; }
18 然后添加一个代理方法,
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([[UIDevice currentDevice].systemVersion floatValue] > 7.9){
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsZero]; } if ([cell respondsToSelector:@selector(setLayoutMargins:)]) { [cell setLayoutMargins:UIEdgeInsetsZero]; } } }
//设置导航条字体的颜色; self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor]/*值*/, NSForegroundColorAttributeName/*键*/, nil];
·UILable是iPhone界面最基本的控件,主要用来显示文本信息。
·常用属性和方法有:
1、创建
CGRect rect = CGRectMake(100, 200, 50, 50);
UILabel *label = [[UILabel alloc] initWithFrame:rect];
2、text //设置和读取文本内容,默认为nil
label.text = @”文本信息”; //设置内容
NSLog(@”%@”, label.text); //读取内容
3、textColor //设置文字颜色,默认为黑色
lable.textColor = [UIColor redColor];
4、font //设置字体大小,默认17
label.font = [UIFont systemFontOfSize:20]; //⼀一般方法
label.font = [UIFont boldSystemFontOfSize:20]; //加粗方法
label.font = [UIFont fontWithName:@"Arial" size:16]; //指定
字体的方法
//还有⼀一种从外部导入字体的方法。
5、textAlignment //设置标签文本对齐方式。
label.textAlignment = NSTextAlignmentCenter; //还有
NSTextAlignmentLeft、 NSTextAlignmentRight.
6、numberOfLines //标签最多显示行数,如果为0则表示多行。
label.numberOfLines = 2;
7、enabled //只是决定了Label的绘制方式,将它设置
为NO将会使文本变暗,表示它没有激活,这时向它设置颜色值是无效的。
label.enable = NO;
8、highlighted //是否高亮显示
label.highlighted = YES;
label.highlightedTextColor = [UIColor orangeColor]; //高亮
显示时的文本颜色
9、ShadowColor //设置阴影颜色
[label setShadowColor:[UIColor blackColor]];
10、ShadowOffset //设置阴影偏移量
[label setShadowOffset:CGSizeMake(-1, -1)];
11、baselineAdjustment //如果adjustsFontSizeToFitWidth属性设
置为YES,这个属性就来控制文本基线的行为。
label.baselineAdjustment = UIBaselineAdjustmentNone;
UIBaselineAdjustmentAlignBaselines = 0,默认,文本最上端与中线对齐。
UIBaselineAdjustmentAlignCenters, 文本中线与label中线对齐。
UIBaselineAdjustmentNone, 文本最低端与label中线对齐。
12、Autoshrink //是否自动收缩
Fixed Font Size 默认,如果Label宽度小于文字长度时时,文字大小不自动缩放
minimumScaleFactor 设置最小收缩比例,如果Label宽度小于文字长度时,文字
进行收缩,收缩超过比例后,停止收缩。
minimumFontSize 设置最小收缩字号,如果Label宽度小于文字长度时,文字字号
减小,低于设定字号后,不再减小。//6.0以后不再使用了。
label.minimumScaleFactor = 0.5;
13、adjustsLetterSpacingToFitWidth //改变字母之间的间距来适应Label大小
myLabel.adjustsLetterSpacingToFitWidth = NO;
14、 lineBreakMode //设置文字过长时的显示格式
label.lineBreakMode = NSLineBreakByCharWrapping;以字符为显示单位显
示,后面部分省略不显示。
label.lineBreakMode = NSLineBreakByClipping;剪切与文本宽度相同的内
容长度,后半部分被删除。
label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字
以……方式省略,显示尾部文字内容。
label.lineBreakMode = NSLineBreakByTruncatingMiddle;中间的内容
以……方式省略,显示头尾的文字内容。
label.lineBreakMode = NSLineBreakByTruncatingTail;结尾部分的内容
以……方式省略,显示头的文字内容。
label.lineBreakMode = NSLineBreakByWordWrapping;以单词为显示单位显
示,后面部分省略不显示。
15、 adjustsFontSizeToFitWidth //设置字体大小适应label宽度
label.adjustsFontSizeToFitWidth = YES;
16、attributedText:设置标签属性文本。
NSString *text = @"first";
NSMutableAttributedString *textLabelStr =
[[NSMutableAttributedString alloc]
initWithString:text];
[textLabelStr
setAttributes:@{NSForegroundColorAttributeName :
[UIColor lightGrayColor], NSFontAttributeName :
[UIFont systemFontOfSize:17]} range:NSMakeRange(11,
10)];
label.attributedText = textLabelStr;
17、竖排文字显示每个文字加一个换行符,这是最方便和简单的实现方式。
label.text = @"请\n竖\n直\n方\n向\n排\n列";
label.numberOfLines = [label.text length];
18、计算UIlabel 随字体多行后的高度
CGRect bounds = CGRectMake(0, 0, 200, 300);
heightLabel = [myLabel textRectForBounds:bounds
limitedToNumberOfLines:20]; //计算20行后的Label的Frame
NSLog(@"%f",heightLabel.size.height);
19、UILabel根据字数多少自动实现适应高度
UILabel *msgLabel = [[UILabel alloc]
initWithFrame:CGRectMake(15, 45, 0, 0)];
msgLabel.backgroundColor = [UIColor lightTextColor];
[msgLabel setNumberOfLines:0];
msgLabel.lineBreakMode = UILineBreakModeWordWrap;
msgLabel.font = [UIFont fontWithName:@"Arial" size:12];
CGSize size = CGSizeMake(290, 1000);
msgLabel.text = @"获取到的deviceToken,我们可以通过webservice服务提
交给.net应用程序,这里我简单处理,直接打印出来,拷贝到.net应用环境中使
用。";
CGSize msgSie = [msgLabel.text sizeWithFont:fonts
constrainedToSize:size];
[msgLabel setFrame:CGRectMake(15, 45, 290, msgSie.height)];
20、渐变字体Label
UIColor *titleColor = [UIColor colorWithPatternImage:[UIImage
imageNamed:@"btn.png"]];
NSString *title = @"Setting";
UILabel *titleLabel = [[UILabel alloc]
initWithFrame:CGRectMake(0, 0, 80, 44)];
titleLabel.textColor = titleColor;
titleLabel.text = title;
titleLabel.font = [UIFont boldSystemFontOfSize:20];
titleLabel.backgroundColor = [UIColor clearColor];
[self.view addSubview:titleLabel];
[titleLabel release];
21、Label添加边框
titleLabel.layer.borderColor = [[UIColor grayColor] CGColor];
titleLabel.layer.borderWidth = 2;