CTTextAlignment textAlignment = kCTTextAlignmentCenter;
CTParagraphStyleSetting setting[] = {
{ kCTParagraphStyleSpecifierAlignment, sizeof(textAlignment), &textAlignment},
{ kCTParagraphStyleSpecifierMinimumLineHeight, sizeof(lineHeight), &lineHeight },
{ kCTParagraphStyleSpecifierMaximumLineHeight, sizeof(lineHeight), &lineHeight },
{ kCTParagraphStyleSpecifierLineSpacing, sizeof(lineSpacing), &lineSpacing },
{ kCTParagraphStyleSpecifierMinimumLineSpacing, sizeof(lineSpacing), &lineSpacing },
{ kCTParagraphStyleSpecifierMaximumLineSpacing, sizeof(lineSpacing), &lineSpacing },
{ kCTParagraphStyleSpecifierParagraphSpacing, sizeof(paragraphSpacing), ¶graphSpacing }
};
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(setting, sizeof(setting) / sizeof(CTParagraphStyleSetting));
[attributedString addAttributes:@{(id)kCTParagraphStyleAttributeName: (__bridge id)paragraphStyle} range:selectedRange];
CFRelease(paragraphStyle);