1.给button设置圆角
button.clipsToBounds=YES;
button.layer.cornerRadius=30;//这里的30是你想设置的圆角大小
[button.layer setBorderWidth:0.5];//设置按钮分割线
[button.layer setBorderColor:[UIColor grayColor].CGColor];//分割线颜色
2.cell分割线从图片下方开始
cell.separatorInset = UIEdgeInsetsZero;
3.cell点击后选中的效果消失
在选中的代理方法中加入以下代码即可
[tableView deselectRowAtIndexPath:indexPath animated:YES];
4.键盘弹出和消失时相应改变输入框的高度(view里面有个tabbleView)
//监听键盘的弹出状态,整个view进行商上移
[[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardWillChangeFrameNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
//键盘的Y值
CGFloat endY = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].origin.y;
//视图上移后的Y值
CGFloat temY = endY - self.view.bounds.size.height;
//视图的frame
self.view.frame = CGRectMake(0, temY, self.view.bounds.size.width, self.view.bounds.size.height);
[UIView animateWithDuration:[note.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{
[self.view setNeedsLayout];
}];
}];
//在tabbleview代理方法中让view不再改变,不编辑状态
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self.view endEditing:YES];
}
5.降低屏幕的亮度
[[UIScreen mainScreen] setBrightness: value];//value:value就是屏幕的亮度值 这个值介于0和1之间
注:另外 这个方法 会即时刷新 无需手动刷新 但这个方法是调整整个手机界面的亮度的 并不仅仅是某个app的亮度 也就是说这个亮度就是在你完全退出这个app后还是会保持的 所以当我们不需要这个亮度继续保持的时候 我们需要在app的代理方法里做些处理 :
//这个方法会在app失去激活状态的时候调用 比如说程序进入后台
- (void)applicationWillResignActive:(UIApplication *)application {
[[UIScreen mainScreen] setBrightness: 0.5];//0.5是自己设定认为比较合适的亮度值
}
//获取当前屏幕的亮度:
CGFloat *currentLight = [[UIScreen mainScreen] brightness];
另外,屏幕的亮度调节只能在真机上看到效果 在模拟器上看不到效果
6.tabbleView自动滚动到底部
//滚动到底部
- (void)scrollToBottom
{
[_chatView setContentOffset:CGPointMake(0, CGFLOAT_MAX)];
}
7.有时候我们并不知道承载label的大小,因为上面的文字多少我们不能确定。这样我们就需要根据文字的多少来计算这个label的大小,从而设置合适的Frame。
CGSize textContentSize = [chat.textContent boundingRectWithSize:CGSizeMake(textMaxW, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:TextFont} context:nil].size;
这里需要知道label的宽度和字体的大小。希望对大家有所帮助。
8.根据story board来加载控制器
// 1.获取当前的StoryBoard面板
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
// 2.通过标识符找到对应的页面
UIViewController *vc = [storyBoard instantiateViewControllerWithIdentifier:@"ID"];
9.改变cell选中状态对勾的颜色 UITableViewCellAccessoryCheckmark
cell.tintColor = mainColor;//改变选中对勾的颜色
10.原生cell固定图片的大小
CGSize itemSize = CGSizeMake(40, 40);
UIGraphicsBeginImageContextWithOptions(itemSize, NO, UIScreen.mainScreen.scale);
CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
[cell.imageView.image drawInRect:imageRect];
cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
11.获取当前页面的VC
- (UIViewController *)topViewController {
UIViewController *resultVC;
resultVC = [self _topViewController:[[UIApplication sharedApplication].keyWindow rootViewController]];
while (resultVC.presentedViewController) {
resultVC = [self _topViewController:resultVC.presentedViewController];
}
return resultVC;
}
- (UIViewController *)_topViewController:(UIViewController *)vc {
if ([vc isKindOfClass:[UINavigationController class]]) {
return [self _topViewController:[(UINavigationController *)vc topViewController]];
} else if ([vc isKindOfClass:[UITabBarController class]]) {
return [self _topViewController:[(UITabBarController *)vc selectedViewController]];
} else {
return vc;
}
return nil;
}
//使用
UIViewController * topViewController = [self topViewController];