+xib
xib文件实质是一个xml文件,类似于android用于描述界面;要先设置File’s Owner中的class属性(目的是在xib中能找到Owner中的方法,类似android中xml与View的绑定);并建立File’s Owner跟控件间的联系
[[NSBundle mainBundle] loadNibNamed:@"RowView" owner:self options:nil]
加载过程:
解析xib的xml文件 —-> 创建Objects下所有对象(xml所有控件)—->根据xml的控件及设定的属性生成设置的相关代码(同手动创建控件的一样)—->添加连线的事件(同手动用代码创建的一样)—-> 返回创建好的对象数组
[即是解析xib文件,根据xml描述生成创建控件、设置属性、添加事件的代码,并放在一个数组中返回]
[但一般不用xib的File’s Owner绑定控件中的事件,这样耦合度高。使该View不能被其他ViewController使用;可使用Tag取得控件并添加事件;但常用的是MVC模式,即一个xib用一个view来控制(类似于android中创建一个view.xml然后创建一个View类,通过该View类控制view的生成及数据填充)如下:

+(id)rowView{    //可在这里面设置图标和label    return [[NSBundle mainBundle] loadNibNamed:@"RowView" owner:nil options:nil][0];}+(id)rowView:(NSString *)icon name:(NSString *)name{    UIView *view = [RowView rowView];    UIButton *iconBtn = (UIButton *)[view viewWithTag:1];    [iconBtn setImage:[UIImage imageNamed:icon] forState:UIControlStateNormal];    UILabel *nameLabel = (UILabel *)[view viewWithTag:2];    nameLabel.text = name;    return view;}

也可不用viewWithTag与寻找控件,可直接绑定控件到xib
1、将File’s Owner的class置空;
2、设置View的class为创建的view名(RowView);将View下的控件与列表中出现的属性名连线绑定;

 +(id)rowViewIcon:(NSString *)icon withName:(NSString *)name{    RowView *view = (RowView *)[RowView rowView];//    UIButton *iconBtn = (UIButton *)[view viewWithTag:1];    [view.iconBtn setImage:[UIImage imageNamed:icon] forState:UIControlStateNormal];//    UILabel *nameLabel = (UILabel *)[view viewWithTag:2];    view.nameLable.text = name;    return view;}

+UIScrollView
scroll.showsVerticalScrollIndicator :滚动条
scroll.bounces;//弹簧效果
scroll.contentInset://在指定的方向上增加额外的区域
scroll.contentSize://滚动范围
scrollView.contentOffset://scrollView滚动的位置,可用代码来控制图片滚动及分页的索引
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@“2.jpg”]];//可直接创建带图片的imageView,创建出来的imageView默认和图片的宽高一样

说明:-True-YES-true
objective-c 中的BOOL 实际上是一种对带符号的字符类型(signed char)的类型定义(typedef),它使用8位的存储空间。通过#define指令把YES定义为1,NO定义为0。
注意:objective-c 并不会将BOOL作为仅能保存YES或NO值的真正布尔类型来处理。编译器仍将BOOL认作8位二进制数,YES 和 NO 值只是在习惯上的一种理解。
问题:如果不小心将一个大于1字节的整型值(比如short或int)赋给一个BOOL变量,那么只有低位字节会用作BOOL值。如果该低位字节刚好为0(比如8960,写成十六进制为0x2300),BOOL值将会被认作是0,即NO值。而对于bool类型,只有true和false的区别,即0为false,非0为true。

+UITableView
如 android 中的ListView,但功能比ListView强大(类似android中的ExpendListView);
设置数据源:实现代理:
方法:

#pragma mark 数据源方法,第section组一共多少行,,若不实现,默认就是一组-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;#pragma mark 一共多少组(类似android的getCount)-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView#pragma mark 返回每一行显示的内容(类似android中Adapter中的getView)-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath#pragma mark 返回每一行的头部标题-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section#pragma mark 返回每一行的尾部注释-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section#pragma mark 返回右边的索引列表-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView//设置右边的图片,此处是没向右的箭头    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; //自定义右边的图片,此处是为一个加号    cell.accessoryView = [UIButton buttonWithType:UIButtonTypeContactAdd;#pragma mark 取消选中该行-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

+单组展示 +设置组数为1即可
UITableViewDelegate为table的代理方法可高,可设置列表的高宽

#pragma mark 设置每一行的高度,UITableViewDelegate下的代理方法-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

+对话框+(类似android)

alert.alertViewStyle =UIAlertViewStyleLoginAndPasswordInput;//自带两个输入框,用户名和密码[alert textFieldAtIndex:0].text =name;//访问每一个文本框并设值//使用自定义的xib的view,但创建的rowItem须指定Custom Class为自己的Cell类型[_tableView registerNib:@"rowItem" forCellReuseIdentifier:@"key”];

博客地址:IOS开发学习笔记(二)

更多相关文章

  1. 2012-06-13 16:50 Android限定EditText的输入类型为数字或者英文
  2. Android获取屏幕宽度高度并动态设置控件宽度,比例等
  3. Android(安卓)属性动画Property Animation(中)
  4. Android开发系列(二十二):AdapterViewFlipper的功能和使用方法
  5. ScrollView嵌套ViewPager,ViewPager内容不显示问题
  6. 安卓程序代写 网上程序代写[原]ViewGroup(容器组件)详解(API解析
  7. Android(安卓)中的几个常用控件
  8. EditText设置可以编辑和不可编辑状态
  9. 控制drawable资源大小

随机推荐

  1. Android:线性布局(LinearFrame)例子
  2. 如何使用 Android(安卓)Studio 的 git hu
  3. Android(安卓)自定义Ratingbar
  4. Android中调节Activity变亮变暗(屏幕亮度)
  5. 实现gridview画分界线
  6. android文件打开方式
  7. 类微信播放音频帧动画实现
  8. AndroidAnnotations——SharedPreference
  9. 自定义ViewGroup onMeasure onLayout
  10. Android几种定时器的使用