Monthly Archives: August 2014

自定义UISearchBar 适配IOS6和IOS7

考虑到统一ios6与ios7的界面风格,UISearchBar通过重自定义来实现,重写一个类继承自UISearchBar

1、效果图:

QQ20140819-1@2x

2、部分代码:
附注释说明

1
2
3
4
5
6
7
8
9
10
SASearchBar.h
#import <UIKit/UIKit.h>
 
@interface SASearchBar : UISearchBar
 
@property (nonatomic, strong)   UITextField     *textField;
 
@property (nonatomic, strong)   UIButton        *searchBtn;
 
@end

SASearchBar.m[……]

继续阅读

UIAttributedString自动换行问题

网上搜了大半天,如出一辙的结果如下:

设置行间距和换行模式都是设置一个属性:kCTParagraphStyleAttributeName,这个属性里面又分为很多子

属性,其中就包括

kCTLineBreakByCharWrapping
kCTParagraphStyleSpecifierLineSpacingAdjustment

设置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//段落
    //line break
CTParagraphStyleSetting lineBreakMode;
CTLineBreakMode lineBreak = kCTLineBreakByCharWrapping; //换行模式
lineBreakMode.spec = kCTParagraphStyleSpecifierLineBreakMode;
lineBreakMode.value = &lineBreak;
lineBreakMode.valueSize = sizeof(CTLineBreakMode);
 
    //行间距
CTParagraphStyleSetting LineSpacing;
CGFloat spacing = 4.0;  //指定间距
LineSpacing.spec = kCTParagraphStyleSpecifierLineSpacingAdjustment;
LineSpacing.value = &spacing;
LineSpacing.valueSize = sizeof(CGFloat);
 
CTParagraphStyleSetting settings[] = {lineBreakMode,LineSpacing};
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(settings, 2);   //第二个参数为settings的长度
[attributedString addAttribute:(NSString *)kCTParagraphStyleAttributeName
                         value:(id)paragraphStyle
                         range:NSMakeRange(0, attributedString.length)];

[……]

继续阅读