iOS-仿百思不得姐app

3 篇文章 0 订阅

仿百思不得姐app


首先感谢李明杰MJ老师,(@M了个J)。

项目截图

目前只完成了一些简单的界面,使用cocoaPods管理代码,用到了一些常用的第三方库,包括AFNetworking,DACircularProgress,M13ProgressSuite,MJExtension,MJRefresh,pop,SDWebImage,SVProgressHUD。

后面还会继续更新。

代码以及更新地址:

github地址


下面是记录编码过程中的一些记录:

UITabBarController.h

通过appearance统一设置tabbarItem的样式;
后面带有UI_APPEARANCE_SELECTOR的方法,都可以通过appearance对象来统一设置。

NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSForegroundColorAttributeName] = [UIColor grayColor];
    NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
    selectedAttrs[NSForegroundColorAttributeName] = [UIColor blackColor];
    //通过appearance统一设置tabbarItem的样式
    UITabBarItem *item = [UITabBarItem appearance];
    [item setTitleTextAttributes:attrs forState:UIControlStateNormal];
    [item setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected];

设置tabbarItem的图片不进行渲染(默认进行渲染)。

方法一:

image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
//设置选中图片不进行渲染
vc1.tabBarItem.selectedImage = image;

方法二:

在Assets.xcassets中选择需要设置的图片:

只读属性可以通过KVC来改变

vc.title = title;

等价于下面的代码:

vc.navigationItem.title = title;
vc.tabBarItem.title = title;

分类

在分类中声明@property,只会生成方法的声明,不会生成方法的实现和带有_下划线的成员变量。

在xib或storyboard中,输入的文字如果想换行,可以按住option,然后回车,即可实现换行。

使用Xcode安装pods的时候,可能会出现下面的情况:

Updating local specs repositories
````

解决办法使用终端,切换到项目目录,执行下面命令:





<div class="se-preview-section-delimiter"></div>

pod install 换成pod install –verbose –no-repo-update这个命令






<div class="se-preview-section-delimiter"></div>

## 在UITableViewCell中,设置selection为None之后,即使cell被选中,内部的子控件也不会进入高亮状态。

解决办法:





<div class="se-preview-section-delimiter"></div>

/*
* 可以在这个方法中监听cell的选中和取消选中
*/
-(void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
//在这里重新设置选中状态的属性
}






<div class="se-preview-section-delimiter"></div>

## 修改占位文字的颜色

方法一:





<div class="se-preview-section-delimiter"></div>

NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
attrs[NSForegroundColorAttributeName] = [UIColor grayColor];
//带有属性的文字(富文本)
NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:@”手机号” attributes:attrs];
self.phoneField.attributedPlaceholder = placeholder;


方法二:

重写UITextField的方法:





<div class="se-preview-section-delimiter"></div>

-(void)drawPlaceholderInRect:(CGRect)rect;


设置UITextField的属性。





<div class="se-preview-section-delimiter"></div>

## 运行时(Runtime)

能做底层操作(比如访问隐藏的成员变量)。





<div class="se-preview-section-delimiter"></div>

+(void)initialize {
unsigned int count = 0;
Ivar *ivars = class_copyIvarList([UITextView class], &count);
for (int i = 0; i < count; i++) {
//去除成员变量
Ivar ivar = *(ivars + i);
//打印成员变量名字
YMLog(@”%s”,ivar_getName(ivar));
}
//释放
free(ivars);
}






<div class="se-preview-section-delimiter"></div>

-(void)setHighlighted:(BOOL)highlighted {
//聚焦
//修改占位符文字颜色
[self setValue:[UIColor whiteColor] forKeyPath:@”_placeholderLabel.textColor”];
}







<div class="se-preview-section-delimiter"></div>

//如果发现控件的位置和尺寸不是自己设置的,那么有可能是自动伸缩属性导致
self.autoresizingMask = UIViewAutoresizingNone;



判断图片是否为gif图片

取出图片的第一个字节,就可以判断出图片的真是类型。

窗口级别:





<div class="se-preview-section-delimiter"></div>

UIWindowLevelNormal < UIWindowLevelStatusBar < UIWindowLevelAlert
“`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值