您的位置:首页 > 移动开发 > IOS开发

iOS开发中一些实用方法的总结

2015-03-12 16:39 337 查看
1.可以防止多个按钮同时点击出现崩溃,这个是一次只能点击一个按钮的方法

button.ExclusiveTouch = yes ;

2.设置图片高保真的方法

imageVieww.clipsToBounds = yes;

imageView.contentMode = UIViewContentModeScaleAspectFill;

3.计算文本字体的宽度

lineImg.frame =CGRectMake(-1,
self.oldPrice.frame.size.height/2,

[selfwidthForLabel:self.oldPrice.text]+2,
0.5);

- (float)widthForLabel:(NSString *)aString

{

if(nil
== aString || [aStringisEqualToString:@""] || [aString
isEqualToString:@"null"] || [aString
isEqual:[NSNull null]])

{

return0;

}

else

{

CGSizesize = [aString
sizeWithFont:[UIFontsystemFontOfSize:13]
constrainedToSize:CGSizeMake(MAXFLOAT,15)];

returnsize.width;

}

4.手机号码和固话的正则表达式

// 判断手机或者电话号码是否正确

+ (BOOL) isValidateMobile:(NSString *)mobile

{

//手机号以13, 15,18开头,八个
\d 数字字符

NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";

NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];

//固话不加区号的

NSString * CT1 = @"^(0[0-9]{2,3}/-)?([2-9][0-9]{6,7})+(/-[0-9]{1,4})?$";

NSPredicate *regextestct1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT1];

//固话加区号的

NSString * CT2 = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";

NSPredicate *regextestct2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT2];



if ([phoneTest evaluateWithObject:mobile] || [regextestct1 evaluateWithObject:mobile] || [regextestct2 evaluateWithObject:mobile])

{

return YES;

}

else

{

return NO;

}

}


5.字体高度

UILabel *label = [[UILabelalloc]
initWithFrame:CGRectMake(0,100,
self.view.frame.size.width,200)];

[label setBackgroundColor:[UIColorblackColor]];

[label setTextColor:[UIColorwhiteColor]];

[label setNumberOfLines:0];



NSString*labelText =
@"可以自己按照宽高,字体大小,来计算有多少行。。然后。。。每行画一个UILabel。。高度自己可以控制把这个写一个自定义的类。";



NSMutableAttributedString*attributedString = [[NSMutableAttributedStringalloc]
initWithString:labelText];

NSMutableParagraphStyle*paragraphStyle = [[NSMutableParagraphStylealloc]
init];



[paragraphStyle setLineSpacing:200];//调整行间距



[attributedString addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStyle
range:NSMakeRange(0, [labelTextlength])];

label.attributedText = attributedString;

[self.view addSubview:label];

[label sizeToFit];

6.分页

intpage =
1;



if(isRefreshing) {

page = 1;

}

else{

if(self.items.count%MM_PER_PAGE_SIZE
!= 0) {



[systemMessageTableView endRefreshingAndReloadData];



return;

}

else{

page = (int)self.items.count/MM_PER_PAGE_SIZE+1;

}

}

7. 代理的正确写法

if(_delegate
&& [_delegaterespondsToSelector:@selector(GesPasswordViewLoginPassed:)]) {

[self.delegate GesPasswordViewLoginPassed:self];

8.tableView进去默认选中第一个

[_leftTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];

9.MBProgressHUD 的gitHub网址(非常好用)

https://github.com/jdg/MBProgressHUD

}

10.判断输入金额为正数,或者保留小数点后面两位的正则

- (BOOL) isValidateNumber:(NSString
*)number

{
NSString *phoneRegex =
@"[0-9]*[1-9][0-9]*";
NSPredicate *phoneTest = [NSPredicate
predicateWithFormat:@"SELF MATCHES %@",phoneRegex];

NSString *phoneRegex1 =
@"^(([1-9]+)|([0-9]+\.[0-9]{1,2}))$";
NSPredicate *phoneTest1 = [NSPredicate
predicateWithFormat:@"SELF MATCHES %@",phoneRegex1];
if ([phoneTest
evaluateWithObject:number] || [phoneTest1
evaluateWithObject:number])
{
return
YES;
}
else
{
return
NO;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: