博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UI前7天
阅读量:5752 次
发布时间:2019-06-18

本文共 9127 字,大约阅读时间需要 30 分钟。

#pragma mark -  如何利用Button来实现两个界面的切换       

        //1. bringtfront

        //2.模态跳转

        //3.轻划 来切换

        //4.导航视图控制器 push  pop

#pragma mark - 总结  UIView 都是创建框框的

        /*

         NOBject-->UIImage

         NOBject-->UIResponder-->UIView--> (1)UILable    (框框)

                                                                                (2)UIImageView  (图片)

                                                                                (3)UIControl -->1.UIButton(按钮,点击切换图标-点对勾)

                                                                                                             2.UITextField(可以自己输入的文本框)) 7个协议

                                                                                                             3.UISwitch(开关)

                                                                                                             4.UIStepper(音量 + -)

                                                                                                             5.UISlider(控制条)

                                                                                                             6.UISegmentedControl(通信, 信息)

                                                                                                             7.UIPageControl (滑动点)

                                                                                (4)UIActionSheet

                                                                                (5)UIAlertView   (警告框)

                                                                                (6)UIScrollView(滑动页面) 1个协议

                                                                                (7)UIActivityIndicatorView  可以转圈圈的

                                                      -->UIViewController 又初始化方法

         */

#pragma mark - 1.UIView  文本框(缩小多大, 弧度大小)

        //第一步创建主屏大小 颜色 添加  vc3步

        //UIView一个父视图可以有很多子视图,一个子视图只可以有一个父视图

        // [self.window addSubview:thirdView];      确立父视图是谁

        //子视图的坐标是相对于父视图的坐标系的,所以在设置位置的时候一定要清楚,当前视图的父视图的位置.

        //层级关系:先添加到数组里的位置在下面,而后添加的加在层级上面(井)

        //               可以通过父视图来调整对应的子视图的层级关系.

        //一些属性:

        //    thirdView.alpha = 0.5;    //透明度

        //    thirdView.hidden = YES;    //隐藏 default     父视图隐藏掉后,他的子视图因为对应的坐标不在后,也跟着消失.

        // secondView.center = CGPointMake(100, 100);        //改变中心到(设置的中心).

        //    [self.window bringSubviewToFront:secondView];   //层级关系

        //    [self.window sendSubviewToBack:secondView];

        

      //   [UIView animateWithDuration:2 animations:^{firstLable.frame = CGRectMake(10, 20, 10, 10);} ];//-->从原来的地方移到另一个地方(大小发生变化)      uiview里的firstLable  由 以前的变为括号里的

#pragma mark - 2.UILable   写字的文本框    设置边框并且可以根据字数调整最大行->自适应

        //UIView -->UILable   写字的文本

        //一些属性:

        //    firstLable.text = @"王景伟sadasffESFTLKHElkhegihLEGKHLKEgh";     //设置lable里的内容

        //    firstLable.textAlignment  = 1;      //设置lable的对齐方式,默认是左对齐.0 中间 1 , 右 2.

        //    firstLable.textColor = [UIColor blackColor];         // 字体颜色.

        //    firstLable.font = [UIFont systemFontOfSize:20];       //字体大小

        //    firstLable.layer.borderWidth = 2;      //设置lable(里缩)边框

        //    firstLable.layer.cornerRadius = 5;    //边框弧度大小

        //    firstLable.layer.masksToBounds = YES;  //隐藏多余的部分  bounds   边界

        

        //    firstLable.numberOfLines = 0;   //lable对应的行数(之前全在中间且默认一行); 0 当前字体可以的最大行数

        //    [firstLable sizeToFit];       //根据文本与自体大小来改变lable的大小   如果先设置 会出现lable消失的问题.

        

        //    NSLog(@"%g",firstLable.frame.size.height);    //先是getter方法 后面是结构体取值

        //    firstLable.shadowColor = [UIColor blackColor];   //阴影颜色

        //    firstLable.shadowOffset = CGSizeMake(2, 2);    //阴影移动大小

        

#pragma mark - 3.UIImageView(插入图片)

       // UIView -->UIImageView(插入图片)

        //    imageView.image = [UIImage imageNamed:@"a004.jpg"];     //添加图片 以UIImage大小为准

        //    imageView.frame = CGRectMake(100, 100, image.size.width,image.size.height);      //图片原来的大小

        //初始化一个用来装所以图片的空数组

        

        /**功能 创建三部曲 1.建立UIimageview 2.创建图片数组 3. 播放**/

        //        NSMutableArray *picArr = [NSMutableArray array];

        //        for (NSInteger i = 0; i < 26; i++) {

        //            NSString *picName = [NSString stringWithFormat:@"angry_%02ld.jpg",i];

        //            UIImage *image = [UIImage imageNamed:picName];

        //            [picArr addObject:image];

        //        }

        //        //通过imageview播放套图

        //        imageView.animationDuration = 1;               //图片一共播放的时间

        //        imageView.animationImages = picArr;        //

        //        imageView.animationRepeatCount = 1;     //播放的次数

        //        [imageView startAnimating];

#pragma mark - 4.UIButton(1.上面可以写字2.图片)      特殊有遍历构造器  方法实现必须靠点击

        // 4.UIView -->UIControl -->1.UIButton

        //1.按钮上添加文字

        //   [button setTitle:@"确定" forState:UIControlStateNormal];    //状态可以多样 不知道什么样

        

 //**       //2.按钮上添加图片

        //两种button基本上是一样的,就是system 设置的时候文字--图片(无法显示)默认是蓝色,而customer文字默认是白色,

        //在设置提片的时候,(遍历构造器)system使用setlmage图片无法显示,而custome可以

        

        //   [button setImage:[UIImage imageNamed:@"check.png"] forState:UIControlStateNormal];

        //   [secButton setBackgroundImage:[UIImage imageNamed:@"BtnOff.png"] forState:UIControlStateNormal];     //铺满

        

        /**功能**/

        //    [button addTarget:self action:@selector(changePic:) forControlEvents:UIControlEventTouchUpInside];   //给button点击方法.forControlEvents:人操作的(触发条件)                              //点击方法.可以多样  --没研究

        

        //  button方法的实现 必须靠点击   在外面点击一次执行一次方法

        

        

#pragma mark - 5. UITextField(7个协议方法)  与BUtton混合使用(确认密码)

        //UIView-->UIControl -->UITextField

        //属性

        //        field.placeholder = @"afwhgk";      //输入内容.   不用输入直接显示

        //        field.text = @"汉字";               //输入内容.

        //        field.secureTextEntry = YES;          //安全输入-->变成黑圈圈

        //        //    field.keyboardType = 5;         //改变输入法

        //        //    field.returnKeyType =  UIReturnKeyGoogle;         //修改return按钮的样式.

        //        //    field.clearButtonMode = UITextFieldViewModeAlways;        //xx存在

        //        field.layer.cornerRadius = 10;             //边角弧度

        

        //    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 0, 50)];

        //    view.backgroundColor = [UIColor groupTableViewBackgroundColor];

        //    field.inputAccessoryView = view;     //给textfield(输入框)添加一个辅助视图.

        //    field.inputView = view;       //弹出自定义视图,可以用来弹出自己设置的键盘.

        //        secButton.layer.borderWidth = 1;

        //        secButton.layer.cornerRadius = 10;

        

        /*

         * textFieldShouldBeginEditing    点击框框的那一刻(编辑开始)-->判断textfield是否在view中心-->不在的话上去

         * textFieldShouldEndEditing       输入法下去的时候(编辑结束)-->上去的话再下来

         * textFieldShouldReturn      点击return的时候

         */

        // 监听输入的内容

#pragma mark - 6.模态跳转 4步

                                    /* 里  面  的  方  法  (事件) */

        /*模态跳转

        // 1.创建目标页面的对象

        SecondViewController *secVC = [[SecondViewController alloc]init];

        // 2.设置跳转的动画样式 4种动画

        //  secVC.modalTransitionStyle = UIModalTransitionStyleCoverVertical; //下面出来

        secVC.modalTransitionStyle =UIModalTransitionStyleFlipHorizontal;          //翻滚

        //     secVC.modalTransitionStyle =UIModalTransitionStyleCrossDissolve;    //直接消失

        //    secVC.modalTransitionStyle = UIModalTransitionStylePartialCurl;     //翻页

        // 3.向目标页面进行跳转

        [self presentViewController:secVC animated:YES completion:^{}];

        // 4. 内存管理

        [secVC release];

        */

        //  [self dismissViewControllerAnimated:YES completion:^{}]; //跳转

        

 #pragma mark - 7.UIAlertView 警告框<协议>

 // UIAlertView *alert = [[UIAlertView alloc]initWithTitle:

#pragma mark - 8.建立模板(重写init[里面( [self addSubview:self.imageView];)建立模板])  自己没有view

        //他是父类的子类

#pragma mark - 9.事件和手势(NSobject里的方法)

        /**

         * UIViewController

         * 1.初始化

         * 2.viewDidLoad   //视图已经被加载

         * 3.viewWillAppear //

         * 4.viewDidAppear

         * 5.viewWillDisappear

         * 6.viewDidDisappear

         */

        //事件   摇一摇  触摸  遥控

        /*

         * 摇一摇

         * motionBegan:

         * motionEnded:

         */

        /*

         * 触摸

         *touchesBegan-->可以写视图谁鼠标一起移动

         *touchesEnded-->可以写靠边移动

         *touchesCancelled

         *touchesMoved-->可以写lable随鼠标进行移动

         */

        /*

         * 7种手势  --->1.初始化一个手势 2.给视图添加手势

         * 在使用图片手势的时候必须先 打开用户交互

         * 1. UITapGestureRecognizer 轻点

         * 2.     Longpress                       长按

         * 3.     Rotation                           旋转(找到作用视图)rotation.view

         action里写  self.myImageView.transform = CGAffineTransformMakeRotation(rotation.rotation);

         * 4.     Pinth                                 捏合(等比)

         * 5.     Pan                                   拖拽(111)-->可以写随鼠标移动

         CGPoint point = [pan translationInView:self.myImageView];     // 当前手势经过的坐标

         self.myImageView.center = CGPointMake(self.myImageView.center.x + point.x, self.myImageView.center.y + point.y);

         [pan setTranslation:CGPointZero inView:self.myImageView];   //坐标归0

         * 6.     Swipe                               滑动

         * 7.     ScreenEdgePan             只可以加在self.view上

         */

 

#pragma mark - 10.音乐播放器

//->父类UIControl 子类:1.UISwitch(开关) swit.isOn 开关的值 0 - 1

//                                     2.UIStepper(音量 + -) stepper.value 总值100 + - 变化

//                                     3.UISlider(控制条)  slider.value 控制条的值

//                                     4.UISegmentedControl(通信, 信息)  seg.selectedSegmentIndex  坐标点 0-1-2

//@property (nonatomic, retain)AVAudioPlayer *plear;         //播放视频

        /*

          NSString *path = [[NSBundle mainBundle]pathForResource:@"樊凡 - 我想大声告诉你" ofType:@"mp3"];

          NSLog(@"%@",path);

          NSURL *url = [NSURL fileURLWithPath:path];

          self.plear = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];

          NSLog(@"%g",self.plear.duration); //总时长

          self.plear.currentTime 当前播放的时间点

         */

 

#pragma mark - 11.UIScrollView 1个协议 与UIPageControl 混合使用

        //scrollView.contentOffset  当前页面

        /*

         * 滑动完全结束的时候触发方法

         * scrollViewDidEndDecelerating

         */

        //设置了缩放比例(并且要签订协议)才可以缩放.

        //pageControl.currentPage  当前的点

        

        //     缩 放 与 滚 动 的 关 键

        //上面两层scollerView    [self.view addSubview:scrollView];  [scrollView addSubview:smallScroll];-->可以缩放

        //第一层一个大的   第二层有9个 scollerView

        //                                                                                         --------------------------->子视图是imageView

        

//        scroller.pagingEnabled = YES; /*按 页 去 滑 动*/

//        scroller.bounces = NO;     /*设置边界回弹*/

//        scroller.showsHorizontalScrollIndicator = YES;  //隐藏水平滚动条

//

//        int count = 0;

//        count++;

//        int b = count;

//        NSLog(@"%d",b);

#pragma mark - 11.导航视图控制器 (1.页面跳转 2.传值 )

        

/*            //第一步  创建导航视图控制器

 

         RootViewController *rootVC= [[RootViewController alloc]init];

        //创建导航视图控制器

        UINavigationController *naVC =[[UINavigationController alloc]initWithRootViewController:rootVC]; //rootVC 加入数组

        //  self.navigationController.viewControllers  数组 -->创建一个添加一个

        //把导航视图控制器设置成window的根视图控制器     20 64

        self.window.rootViewController = naVC;   //默认半透明的

        NSLog(@"%@",naVC);

        [rootVC release];

        [naVC release];

 

   */

    /*

                             //2.设 置 外 观 样 式

        self.view.backgroundColor = [UIColor redColor];

        NSLog(@"%@",self.navigationController);

         //这 个 属 性 可以设置当前导航视图控制器是否半透明,默认是半透明的,会影响坐标系

        self.navigationController.navigationBar.translucent = NO;    //设置为不透明==影响坐标系的原点

        

                          //3.修 改 导 航 试 图 控 制 器 的 背 景 颜 色   不是所有的背景颜色都是backgroundcolor

        self.navigationController.navigationBar.barTintColor = [UIColor grayColor];

        

                       //4.修 改 里 面 的 内 容

        //self.title = @"链家";

        //self.navigationItem.title = @"链家";

        //UISegmentedControl *seg = [[UISegmentedControl alloc]initWithItems:@[@"消息",@"通话"]];   //中间的

        //self.navigationItem.titleView = seg;

        UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(100, 0, 100, 100)];

        lable.text = @"内容";

        self.navigationItem.titleView = lable;

        

                       //5.创建左右两边的按钮

       */

    

       /*              //6.跳转

        //1.想创建目标页面对象

        SecondViewController *secondView = [[SecondViewController alloc]init];

         //2.跳转

        [self.navigationController pushViewController:secondView animated:YES];

        [secondView release];

        3.往回跳

             [self.navigationController popViewControllerAnimated:YES];    // 跳到上一页

        //   [self.navigationController popToRootViewControllerAnimated:YES]; //调到第一页

 

        */

               //7.传值

        /*

         *                              1.从前往后传值

                1.(第二个页面设置个属性    与跳转结合-->即创建好页面后(第一个页面))

                2. 把要传过去的内容,通过目标页面的属性进行传递.

                 secondView.str = self.myTextField.text;

                3.在第二个页面能使用值

         *                                2.从后往前传值<代理6步>

         *     1.写协议

         *     2.写属性

         *     3.

         *

         */

 

转载于:https://www.cnblogs.com/Rum496/p/5269194.html

你可能感兴趣的文章
微软大会Ignite,你准备好了么?
查看>>
读书笔记-高标管事 低调管人
查看>>
Master带给世界的思考:是“失控”还是进化
查看>>
用户和开发者不满苹果iCloud问题多多
查看>>
java.lang.UnsatisfiedLinkError:no dll in java.library.path终极解决之道
查看>>
我的工具:文本转音频文件
查看>>
【许晓笛】从零开始运行EOS系统
查看>>
【跃迁之路】【460天】程序员高效学习方法论探索系列(实验阶段217-2018.05.11)...
查看>>
C++入门读物推荐
查看>>
TiDB 源码阅读系列文章(七)基于规则的优化
查看>>
Spring之旅第八站:Spring MVC Spittr舞台的搭建、基本的控制器、请求的输入、表单验证、测试(重点)...
查看>>
数据结构与算法——常用排序算法及其Java实现
查看>>
你所不知的Webpack-多种配置方法
查看>>
webpack+typescript+threejs+vscode开发
查看>>
python读excel写入mysql小工具
查看>>
如何学习区块链
查看>>
搜索问题的办法
查看>>
微信分销系统商城营销5大重点
查看>>
求职准备 - 收藏集 - 掘金
查看>>
Linux-Centos启动流程
查看>>