IOS开发 UIView控件

1.万物皆对象

2.LBS:基于位置的服务(热门)

3.在启动XCODE创建项目的时候最好勾选 git

4.在SB界面中更改UILabel 之类的控件里面的内容,控件的frame会随着内容的大小而改变,但是在右侧的属性栏里面更改则不会影响frame

5.IBAction:SB界面原来叫Interface Builder 缩写为IB,

6.M_PI_4  代表45°  以此类推

// OC语法规定:不允许直接修改 某个对象中结构体属性的成员

  • ?





    1

    2

    3

    4

    5

    6

    7

    8

    // 1.先取出frame

        CGRect tempFrame = _btn.frame;

     

        // 2.修改y值   // 这个能修改是因为,这个tempframe只是一个简单的结构体,而不是对象的结构体,对象的结构体是不能直接修改,但是单纯的结构体是可以的

        tempFrame.origin.y -= 50;

        

        // 3.重新赋值按钮的frame

        _btn.frame = tempFrame;

非常重要:注意辨别方法传入参数的类型,

  • 如 : - (IBAction)add:(id)sender

  • 由于传入的参数是id类型,所以不能使用点语法,如sender.tag就不能使用

  • 将(id)改为(UIButton *)就可以使用点语法了

block 块

  • 定义:可以给块传递参数,正如给函数传递一样。块也具有返回值。与函数不同的是,块定义在函数或者方法内部,并且能够访问在函数或者方法范围内块之外的任何变量。

  • Blocks的定义:

  • int (^MySum)(int, int) = ^(int a, int b) {

  • return a+b;

  • };

  • 定义了一个叫MySum的blocks对象,它带有两个int参数,返回int。等式右边就是blocks的具体实现

  • Block可以访问局部变量,但是不能修改。
  • 在oc中方法调用block的一半格式:- (void)btn: (void (^)())block

  • void----没有返回值

  • (^)块的标志

  • ()没有参数

退出键盘的两种方式

  • resignFirstResponder

  • 当叫出键盘的那个控件(第一响应者)调用这个方法时,就能退出键盘

  • endEditing

  • 只要调用这个方法的控件内部存在第一响应者,就能退出键盘

通过代码创建UI并实现动作的一般流程

  • 1.搭建UI界面

  • 实例化控件(为控件指定各种属性)

  • 将实例化的控件添加到view中

  • 2.根据UI需求将程序运行中状态动态改变的
  • 1. 定义属性

  • 根据UI需求将程序中状态动态改变的控件定义属性,即相当于在storyboard中的创建UIOutlet步骤

  • @property (nonatomic, strong) UILabel *noLabel;

  • 2. 创建属性对应的控件,添加到视图

  • 实例化控件(为控件指定各种属性)

  • 将实例化的控件添加到view中

  • UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, 320,
    40)];

  • label.text = @"1/5";

  • label.textAlignment = NSTextAlignmentCenter;

  • [self.view addSubview:label];

  • 为有属性的控件分配属性:

  • self.noLabel = label;

  • 3.创建按键点击时产生的动作(即创建方法)

  • 4.监听按钮的点击事件

  • [rightBtn addTarget:self action:@selector(rightClick)
    forControlEvents:UIControlEventTouchUpInside];

IOS开发 UIView控件

时间: 2024-10-26 23:32:00

IOS开发 UIView控件的相关文章

IOS开发之控件frame/bounds/center尺寸改变小技巧-简单给UIView新增分类(github链接)

大家是否还记得对控件的frame/bounds/center进行属性更改时的三部曲? 1>将结构体取出 2>改变取出后的结构体对应的数据 3>将修改后的结构体赋值给控件 CGRect frame = self.view.frame; // your code... frame.origin.x = frameX; // your code... self.view.frame = frame; 这在实际工作中需要更改相应属性的时候是很不方便的,所以考虑到直接在UIView的分类中添加相应

iOS开发-DatePicker控件

时间控件不管是Android还是iOS中都是必然存在的一个控件,具体的效果大同小异,显示日期,时间,iOS中有四种方式可以选择,Time, Date,Date and Time  , Count Down Timer,Demo比较简单,需要一个DatePicker控件和一个Button显示时间或者日期,具体实现如下: 页面布局 Main.storyboard布局: Y 效果: 代码实现 首先将控件拖入ViewController.h中,将Button的点击拖入ViewController.m中:

iOS开发--UIKit控件之UISearchBar(搜索框)

初始化:UISearchBar继承于UIView,我们可以像创建View那样创建searchBar 1 UISearchBar *bar = [[UISearchBar alloc]initWithFrame:CGRectMake(20, 100, 250, 40)]; 2 [self.view addSubview:bar]; 1 // 这个属性可以设置searchBar的搜索 2 @property(nonatomic) UIBarStyle barStyle; 3 // 枚举如下: 4 t

IOS开发-UI控件的常见属性

一.概述 程序运行过程中,我们经常要改变控件的显示状态,如下载进度.播放器的播放进度.图片的放大缩小等,那么如何修改呢? 二. 修改UI控件的状态 每个UI控件都是一个对象,要修改这个对象的状态就是要修改这个对象的属性,比如,修改UILabel显示的文字就修改UILabel的text属性 @interface UILabel : UIView <NSCoding> @property(nonatomic,copy) NSString *text; // default is nil @end

IOS开发之控件篇第二章 - UICollectionViewControllor

1.介绍 UICollectionView和UICollectionViewControllor是IOS6.0后引入的新控件 使用UICollectionView必须实现三个接口: UICollectionViewDataSource UICollectionViewDelegate UICollectionViewDelegateFlowLayout ------------------------------------------------------------------------

从零开始iOS8编程【iOS开发常用控件】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 AlertView控件 弹出对话框: 修改HelloHaoMengZhu项目代码, 添加AlertView: -(IBAction)testAlert { NSString *str = [[NSString alloc] initWithFormat:@"Hello, %@",txtField.te

IOS开发--一个控件添加后看不见 有哪些可能。

一个控件用肉眼看不见,有哪些可能 1.根本没有创建实例化这个控件 2.没有设置尺寸 3.控件的颜色跟父控件的背景色一样(实际上已经显示了,只不过用肉眼看不见) 4.透明度alpha <= 0.01 5.hidden = YES 6.没有添加到父控件中 7.被其他控件挡住了 8.位置不对 9.父控件发生了以上情况 10.特殊情况 * UIImageView没有设置image属性,或者设置的图片名不对 * UILabel没有设置文字,或者文字颜色和跟父控件的背景色一样 * UITextField没有

IOS开发之控件篇UITabBarControllor第二章 - 遮掩TableView问题

在IOS7.0以后UITabBar 里面放入一个UITableView会出现一个问题,Table会被TabBar掩盖了,当移动到最后一项的时候,永远看不到,如下面的例子,总共是99项,但是只能显示到98 解决方法如下: - (void)viewDidLoad { [super viewDidLoad]; self.edgesForExtendedLayout = UIRectEdgeNone; } 主要是这一句self.edgesForExtendedLayout = UIRectEdgeNon

iOS 开发之控件快速学习(一)

最近一个朋友想转iOS所以我开始写一些初级iOS学习博客!也希望第一些初学的朋友有所帮助,!好吧进入今天的正题,我们今天主要完成如下界面的显示! 好的一起打开Xcode一下几步我截图说明: 这里一般不用中文的但为方便你好找我用的是中文,以后我会为大家说明的,点击之后就是教你选择保存位置,看个人爱好自由选择,我选择的是桌面! 得到4个文件AppDelegate和ViewController 以后我会为大家介绍的现在直接点击ViewController.m文件我们开始今天的学习吧 command +