1.tableview 的headerFooterView 设置sectionHeaderHeight后,内部的按钮控件点击无效问题:
解决方法:在layoutSubviews中首先调用父类的layoutSubviews方法,重新渲染contentView空间,解决遮挡问题
- (void)layoutSubviews{
[super layoutSubviews];
}
2.静态单元格必须使用UITableViewController
3.设置圆角cornerRadius
label.layer.cornerRadius = 6;
label.layer.masksToBounds = YES;//把圆角外部切掉
4.设置按钮左对齐
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
5.设置按钮内边距
UIButtonConfiguration * config = [UIButtonConfiguration plainButtonConfiguration];
config.contentInsets = NSDirectionalEdgeInsetsMake(0, 10, 0, 0);
btn.configuration = config;
6.设置按钮图片旋转后超出裁剪
btn.clipsToBounds = YES;//按钮图片超出按钮裁剪
7.设置UIImageView图片填充模式contentMode
imageView.contentMode = UIViewContentModeScaleAspectFit;
UIViewContentMode枚举:
UIViewContentModeScaleToFill, //缩放以填充
UIViewContentModeScaleAspectFit, // 等比缩放填充,可能会有透明部分
UIViewContentModeScaleAspectFill, // 等比缩放填充,可能会有部分被裁剪
UIViewContentModeCenter, // 居中显示,会有部分被裁剪
8.各版本获取keywindow
// < iOS 13
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
// > iOS13, < ios15
UIWindow *keyWindow = [UIApplication sharedApplication].windows.firstObject;
// >iOS15
UIWindow *keyWindow = self.view.window.windowScene.keyWindow;
8.组件遮挡,放到最上层
[self.view bringSubviewToFront];
9.kvc(key-value coding)
[obj setValuesForKeysWithDictionary]; // 将一个字典数据依次赋值给对象的属性
[obj setValue forKeyPath]; // 单个赋值对象属性
[obj dictionaryWithValuesForKeys];// 将对象属性提练转为一个字典类型
[obj getValue forKeyPath]; //获取对象属性,等同于使用对象"."语法获取属性,有点就是目的更清晰