国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

提示框message左對齊問題

2019-11-08 00:14:56
字體:
供稿:網(wǎng)友

前言

今天需要改一個將提示框中message左對齊的需求,而蘋果SDK中并沒有公開一些屬性來設(shè)置其中message的樣式。所以其實只有拿到用來展示message的那個控件就好了,然后設(shè)置它的一些屬性,其實就是label。查了一些資料,特此整理一下

正文

從iOS8過后蘋果建議使用UIAlertController替代UIAlertView,所以就有兩種情況

UIAlertView

適用于iOS7以及iOS7以下的版本,想必過不了多久也就沒人用iOS7了吧。可以直接在其代理方法-(void)willPResentAlertView:(UIAlertView *)alertView中實現(xiàn)以下方法就可:

- (void)willPresentAlertView:(UIAlertView *)alertView{ for( UIView * view in alertView.subviews ) { if( [view isKindOfClass:[UILabel class]] ) { UILabel* label = (UILabel*) view; label.textAlignment = UITextAlignmentLeft; } }}

拿到alertView,遍歷它的子視圖,找到UILabel那個控件,然后將其文字樣式設(shè)置為左對齊。 其實UILable在alertView.subviews里面是第3個元素,第一個元素是一個UIImageView(背景),UILable(標(biāo)題),UILable(Message),UIButton(Cancel)…(如果還有的話以此類推)

UIAlertController

由于UILabel在UIAlertController的View中的層級比較深,所以可以通過遍歷來找到UILabel(其實需要遍歷6次才能找到),代碼如下:

{UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:alertControllerStyle]; UIView *messageParentView = [self getParentViewOfTitleAndMessageFromView:alertController.view]; if (messageParentView && messageParentView.subviews.count > 1) { UILabel *messageLb = messageParentView.subviews[1]; messageLb.textAlignment = NSTextAlignmentLeft; }}- (UIView *)getParentViewOfTitleAndMessageFromView:(UIView *)view { for (UIView *subView in view.subviews) { if ([subView isKindOfClass:[UILabel class]]) { return view; }else{ UIView *resultV = [self getParentViewOfTitleAndMessageFromView:subView]; if (resultV) return resultV; } } return nil;}

結(jié)語

遇到問題還是要多思考,就算蘋果沒有直接的方法去實現(xiàn)也不要慌張,總能找到解決之道。 如果只是修改左對齊,采用系統(tǒng)的,用上面的方法即可。如果還有一些復(fù)雜的用法,在UIAlertView上添加自己寫的UILabel,設(shè)置其左對齊,或者其他控件,可用在GitHub上面有1430個star之多的第三方CustomIOSAlertView也非常方便。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 合山市| 白河县| 新绛县| 云霄县| 鄢陵县| 罗源县| 梧州市| 洛南县| 车险| 丽水市| 当涂县| 抚远县| 丰台区| 临夏县| 英德市| 平湖市| 宁武县| 红原县| 东阳市| 佛山市| 府谷县| 铜陵市| 阜宁县| 清丰县| 绥滨县| 贵南县| 咸宁市| 揭东县| 武夷山市| 富平县| 镇雄县| 泊头市| 渭源县| 洪湖市| 临汾市| 砀山县| 昌邑市| 东安县| 保靖县| 兴化市| 诸暨市|