我正在为iOS 7编写一个应用程序,我正在尝试在不可编辑的UITextView中的子弹点上获得体面的格式.
只需插入一个项目符号字符就足够了,但是当然左侧的缩进不会随之而来. iOS 7上最简单的方法是在一个项目符号点之后设置一个左缩进?
提前致谢,
坦率
解决方法
下面我使用代码来设置一个项目符号的段落.这是直接从一个工作的应用程序,并用于将风格应用于整个段落,以响应用户单击格式化按钮.我试图把所有的依赖方法,但可能错过了一些.
请注意,我以厘米设置大多数缩进,因此在列表末尾使用转换功能.
我还在检查一个制表符的存在(iOS上没有标签键),并自动插入破折号和制表符.
如果你需要的是段落样式,那么看下面的最后几个方法,其中firstLineIndent等设置.
请注意,这些调用全部包装在[textStorage beginEditing / endEditing]中.尽管(IBAction)下面的方法没有被UI对象直接调用.
- (IBAction) styleBullet1:(id)sender { NSRange charRange = [self rangeForUserParagraphAttributeChange]; NSTextStorage *myTextStorage = [self textStorage]; // Check for "-\t" at beginning of string and add if not found NSAttributedString *attrString = [myTextStorage attributedSubstringFromRange:charRange]; NSString *string = [attrString string]; if ([string rangeOfString:@"\t"].location == NSNotFound) { NSLog(@"string does not contain tab so insert one"); NSAttributedString * aStr = [[NSAttributedString alloc] initWithString:@"-\t"]; // Insert a bullet and tab [[self textStorage] insertAttributedString:aStr atIndex:charRange.location]; } else { NSLog(@"string contains tab"); } if ([self isEditable] && charRange.location != NSNotFound) { [myTextStorage setAttributes:[self bullet1Style] range:charRange]; } } - (NSDictionary*)bullet1Style { return [self createStyle:[self getBullet1ParagraphStyle] font:[self normalFont] fontColor:[UIColor blackColor] underlineStyle:NSUnderlineStyleNone]; } - (NSDictionary*)createStyle:(NSParagraphStyle*)paraStyle font:(UIFont*)font fontColor:(UIColor*)color underlineStyle:(int)underlineStyle { NSMutableDictionary *style = [[NSMutableDictionary alloc] init]; [style setValue:paraStyle forKey:NSParagraphStyleAttributeName]; [style setValue:font forKey:NSFontAttributeName]; [style setValue:color forKey:NSForegroundColorAttributeName]; [style setValue:[NSNumber numberWithInt: underlineStyle] forKey:NSUnderlineStyleAttributeName]; FLOG(@" font is %@",font); return style; } - (NSParagraphStyle*)getBullet1ParagraphStyle { NSMutableParagraphStyle *para; para = [self getDefaultParagraphStyle]; NSMutableArray *tabs = [[NSMutableArray alloc] init]; [tabs addObject:[[NSTextTab alloc] initWithTextAlignment:NSTextAlignmentLeft location:[self ptsFromCMF:1.0] options:nil]]; //[tabs addObject:[[NSTextTab alloc] initWithType:NSLeftTabStopType location:[self ptsFromCMF:1.0]]]; [para setTabStops:tabs]; [para setDefaultTabInterval:[self ptsFromCMF:2.0]]; [para setFirstLineHeadIndent:[self ptsFromCMF:0.0]]; //[para setHeaderLevel:0]; [para setHeadIndent:[self ptsFromCMF:1.0]]; [para setParagraphSpacing:3]; [para setParagraphSpacingBefore:3]; return para; } - (NSMutableParagraphStyle*)getDefaultParagraphStyle { NSMutableParagraphStyle *para; para = [[NSParagraphStyle defaultParagraphStyle]mutableCopy]; [para setTabStops:nil]; [para setAlignment:NSTextAlignmentLeft]; [para setBaseWritingDirection:NSWritingDirectionLeftToRight]; [para setDefaultTabInterval:[self ptsFromCMF:3.0]]; [para setFirstLineHeadIndent:0]; //[para setHeaderLevel:0]; [para setHeadIndent:0.0]; [para setHyphenationFactor:0.0]; [para setLineBreakMode:NSLineBreakByWordWrapping]; [para setLineHeightMultiple:1.0]; [para setLineSpacing:0.0]; [para setMaximumLineHeight:0]; [para setMinimumLineHeight:0]; [para setParagraphSpacing:6]; [para setParagraphSpacingBefore:3]; //[para setTabStops:<#(NSArray *)#>]; [para setTailIndent:0.0]; return para; } -(NSNumber*)ptsFromCMN:(float)cm { return [NSNumber numberWithFloat:[self ptsFromCMF:cm]]; } -(float)ptsFromCMF:(float)cm { return cm * 28.3464567; }