今天做个小demo,因为忘记了一些基本知识(肯定是以前不够牢固),导致弄了很久
实际上就只是一个属性忘记添加而已,一个小小的IBoutlet。。。
打开storyboard(注明:现在刚刚更新的xcode 6,故storyboard可以选择长宽高,适应不同型号的苹果产品,在适配方面用起来倒是相当舒服,而且每种size都写的清清楚楚用途是什么,是iphone还是ipad,我想这个也是苹果成功的原因之一)。
右下角拖动空间进入storyboard,做好排版
因为要拖直线链接到相应的控件对象,我们需要再.h文件声明一些东西,特别是需要输出的控件,必须要声明,不然拖直线的时候根本不会出现
@interface ViewController : UIViewController
{
IBOutLet UIImageView *imgView;
IBOutLet UILabel *lab;
//如此类推,输出的对象必须有iboutlet
}
@property (nonatomic, strong) UIImageView* imgView;
@property (nonatomic, strong) UILabel* lab;
//property声明则主要用于非输出的对象,包括不会有输出的控件对象也可以直接声明property而不声明在interface内。
//其实就是因为storyboard需要在代码中寻求关联关系,所以才要求声明一下IBOutLet。其他不用关联到storyboard的东东,就直接代码实现好了。当然,就算是输出的view,也可以直接代码实现,但是比较费时费力不讨好,如果可以的话,还是尽量使用storyboard,毕竟一个强大的功能出来,不用浪费。。。
还有!
刚刚又浪费了很久在uiimageview的输出上,原因是。。。
使用了@synthesis时候,在代码中有自己init了一遍。。这样子的话,,就不断报错,,因为重新alloc init一次使得storyboard关联好的对象又丢失掉。。所以死活输出不了。。xcode这个东东报错又很没技术含量。。
记得 @synthesis就相当于init了类的对象,就别再傻逼兮兮的alloc init 一遍
ps:xcode 6这个排版真是有点蛋疼。。总是分不清哪个对应哪个。。哎。。