最近把iOS里的UI组件重新整理了一遍,简单来看一下常用的组件以及它们的实现。其实现在这些组件都可以通过Storyboard很快的生成,只是要向这些组件能够变得生动起来并且赋予它们更具生命力的事件,还是需要一番功夫的。
UIButton
这儿有一篇教程,挺全的,可以参考下:http://www.cnblogs.com/chen1987lei/archive/2011/09/09/2172757.html
这个就不多说了,对照官方的文档也可以更多的去学习。插一句题外话,在学这些组件的时候,最令人头疼的不是你搞不定一个组件的某个属性或者方法,而是你压根儿不知道有这个东西。所以在学习这些组件的时候最好的方式还是通过官方文档,虽然已开始可能有些困难,但是硬着头皮去啃,就一定会有悟道的那一天。建议有问题先去看文档,如果实在不行再去Google啊,Stack Overflow啊神马的。
UIAlertController
弹出式的提示框。现在市面上的书籍包括网上的一些资料都还停留在iOS8之前的时代,那个时候的弹出框是一个叫做UIAlertView的东西,但是现在,在XCode7和iOS9的时代,你会发现这个东西被弃用了。苹果自iOS8开始,废除了UIAlertView而改用UIAlertController来控制提示框。
来看看UIAlertController的实现吧,下面这个程序是我在练习UITableView时的代码,实现了一个类似与通讯录的东西,我们抓住主要矛盾,来看点击某一行cell后,弹出的消息提示框是怎么实现的。以下代码在ViewController.m中实现。
//创建提示框窗口UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"System Info" message:[contact getName] preferredStyle:UIAlertControllerStyleAlert];//实例化取消按钮 UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) { //点击取消按钮后控制台打印语句。 NSLog(@"The \"Okay/Cancel\" alert's cancel action occured.");}];//实例化确定按钮 UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { NSLog(@"The \"Okay/Cancel\" alert's other action occured."); //下面这段代码不用管它,简单点讲就是获取当前行的一个字符串。 UITextField *textfield = alertController.textFields[0]; KCContactGroup *group = _contacts[_selectedIndexPath.section]; KCContact *contact = group.contacts[_selectedIndexPath.row]; contact.phoneNumber = textfield.text; NSArray *indexPaths = @[_selectedIndexPath]; [_tableview reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationLeft];}];//向弹出框中添加按钮和文本框[alertController addAction:cancelAction];[alertController addAction:otherAction];[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { // 可以在这里对textfield进行定制,例如改变背景色等 textField.text = contact.phoneNumber;}];//将提示框弹出[self presentViewController:alertController animated:YES completion:nil];实现了大概就是这个样子,文本框里的东西是从cell里面提取的。
|
|