码迷,mamicode.com
首页 > 其他好文 > 详细

前期做第一个小项目的一些问题总结+解决+解释,希望新手少走点弯路

时间:2015-07-09 06:17:25      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

1.改变按钮字体大小:(其实是按钮里面的文字是加在label上的)

button.titleLabel.font = [UIFont systemFontOfSize:20];

   label的改变方法:

label.font = [UIFont systemFontOfSize:20];

2.改变一个控件的point(包括frame、bounds、center等有point的)不可以直接赋值如下,要声明一个临时变量存下来,改临时变量的点再赋值整个frame回去。因为,一个View用了点语法(即".frame")之后:,后面再".size",这个并不是访问View的成员变量了,而是访问结构体里面的成员,OC中并不允许怎么做。
num.center.x = self.view.center.x;  // 此行代码报错
  正确做法如下
// 如要改变Y值不能直接改,必须利用一个临时rect才能改

CGRect tempframe = popView.frame ;
tempframe.origin.y -= popView.frame.size.height;
popView.frame = tempframe;

到这里有人就会问:如果以后开发中要改一个View或者控件的Frame中的Point那不得很麻烦?,这里来个小Tips,可以为UIView写个分类哦,,以下为示例:

在.h文件中声明属性,

@property (assign, nonatomic) CGFloat x;

在.m文件中重写Setter方法,

- (void)setX:(CGFloat)x
{
    CGRect frame = self.frame;
    frame.origin.x = x;
    self.frame = frame;
}

这样,以后用的时候就可以直接像

 myView.x = 10;

这样用起来就会方便许多对吧。其他的Y值、宽高应该不用我去说了吧?还不赶紧去写?以后直接把分类拉到要开发的项目中,这个修改Frame值就爽多了。



3.使label中得文字居中

label.textAlignment = NSTextAlignmentCenter;


4.label中的文字自动换行,0代表可以多行。

label.numberOfLines = 0;

5.设置图片的拉伸模式(多个属性可选,右边是枚举,可Commom键加鼠标点进去API里面看看有哪些)

imageView.contentMode = UIViewContentModeScaleAspectFit;

6.使用plist文件的3步骤
 1) //获得plist文件路径的方法! plistName为Plist的文件名
 

  NSBundle *bundle = [NSBundle mainBundle];
    NSString *path = [bundle pathForResource:@"plistName" ofType:@"plist"];

   2) //获得plist里面的数组(也可以为字典、或字符串,具体类型要看Plist)

    plistArr = [NSArray arrayWithContentsOfFile:path];


 3)//使用数组即可。

7.NSlog中的%.f 和强制转换(int)的差别
 %.f是4舍5入,5.5 ->6;
 (int)是去掉小数点,5.5->5;
所以在编写时需要注意。

8.改变父控件的bounds,会移动他的子控件的位置,父不动,因为子控件的frame是以父控件的为主。
     //父

    UIView *superView = [[UIView alloc]initWithFrame:CGRectMake(50, 150, 220, 220)];
    superView.backgroundColor = [UIColor greenColor];
    [self.view addSubview:superView]


     //子

 UIView *subView = [[UIView alloc]initWithFrame:superView.frame];
    subView.backgroundColor = [UIColor blueColor];
    [superView addSubview:subView];

 

    
    CGRect superbounds = superView.bounds;
    superbounds.origin = CGPointMake(50, 150); // <-其中父的X、Y都加,子会相反,即是子的x、y都减(往左上移动)减就相反。
    superView.bounds = superbounds;

 

前期做第一个小项目的一些问题总结+解决+解释,希望新手少走点弯路

标签:

原文地址:http://www.cnblogs.com/MiBlog/p/4631804.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!