一、给文字设置粗体
- 第一种方法
labelname.font = [UIFont fontWithName:@"Helvetica-Bold" size:15];
Helvetica-Bold还可以换成
"Arial-BoldMT",
ArialMT,
"Arial-ItalicMT",
"Arial-BoldItalicMT等等
字体族科后面加-Bold就是加粗 加-Oblique就是倾斜
不知道后面的字体名怎么写,一幅图搞定
字体虽然很多,但只对英文有效,中文是看不到效果的😀
- 第二种方法
labelname.font = [UIFont boldSystemFontOfSize:15.0];
这种方法可能导致个别字体加粗不成功,用过这个之后就不要再用第一个方法了。
二、检查一段字符串是否单纯数字/字母/两者混合
这个方法是根据计算字符串的长度来判断字符串类型的。
纯数字,每个字符的长度为1
字母
- 定义一个枚举用来接收方法返回值
//仿照系统写枚举的方法
typedef NS_ENUM(NSUInteger, StringType) {
EnglishType = 1 ,
NumberType = 2,
EnglishAndNumberType = 3,
OtherType = 4
};
- 直接写方法
方法中用到的选项详解(两个枚举)
typedef NS_OPTIONS(NSUInteger, NSMatchingOptions) {
NSMatchingReportProgress = 1 << 0, //找到最长的匹配字符串后调用block回调
NSMatchingReportCompletion = 1 << 1, //找到任何一个匹配串后都回调一次block
NSMatchingAnchored = 1 << 2, //从匹配范围的开始出进行极限匹配
NSMatchingWithTransparentBounds = 1 << 3, //允许匹配的范围超出设置的范围
NSMatchingWithoutAnchoringBounds = 1 << 4 //禁止^和$自动匹配行还是和结束
};
2、block回调中的flags枚举对应如下:
typedef NS_OPTIONS(NSUInteger, NSMatchingFlags) {
NSMatchingProgress = 1 << 0, //匹配到最长串是被设置
NSMatchingCompleted = 1 << 1, //全部分配完成后被设置
NSMatchingHitEnd = 1 << 2, //匹配到设置范围的末尾时被设置
NSMatchingRequiredEnd = 1 << 3, //当前匹配到的字符串在匹配范围的末尾时被设置
NSMatchingInternalError = 1 << 4 //由于错误导致的匹配失败时被设置
};
+(NSInteger)checkIsHaveNumAndLetter:(NSString*)aString{
//数字条件 (NSRegularExpressionCaseInsensitive :不区分大小写)
NSRegularExpression *tNumRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[0-9]" options:NSRegularExpressionCaseInsensitive error:nil];
这个方法是iOS中的正则表达式的方法。表示0-9的条件。并且不区分大小写。
//符合数字条件的有几个字节
NSUInteger tNumMatchCount = [tNumRegularExpression numberOfMatchesInString:aString
options:NSMatchingReportProgress
range:NSMakeRange(0, aString.length)];
这个方法表示匹配上面的条件的 总计有几个字节。 下面的方法都同理。
//英文字条件
NSRegularExpression *tLetterRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[A-Za-z]" options:NSRegularExpressionCaseInsensitive error:nil];
//符合英文字条件的有几个字节
NSUInteger tLetterMatchCount = [tLetterRegularExpression numberOfMatchesInString:aString options:NSMatchingReportProgress range:NSMakeRange(0, aString.length)];
if (tNumMatchCount == aString.length) {
//全部符合数字,表示沒有英文
return NumberType;
} else if (tLetterMatchCount == aString.length) {
//全部符合英文,表示沒有数字
return EnglishType;
} else if (tNumMatchCount + tLetterMatchCount == aString.length) {
//符合英文和符合数字条件的相加等于密码长度
return EnglishAndNumberType;
} else {
return OtherType;
//可能包含标点符号的情況,或是包含非英文的文字,这里再依照需求详细判断想呈现的错误
}
}
网友评论