作者:天涯使者2602921991 | 来源:互联网 | 2023-07-30 17:08
1、exclusiveTouch,互斥性:一些应用经常会在一个view上放多个按钮,比如登录页面,就会有注册与登录按钮。理论上讲注册和登录按钮是不能同时按下的,但是如果你同时按下这两个
1、exclusiveTouch,互斥性:
一些应用经常会在一个view上放多个按钮,比如登录页面,就会有注册与登录按钮。理论上讲注册和登录按钮是不能同时按下的,但是如果你同时按下这两个按钮,这两个东东都会显示响应高亮状态,其结果就不可预知了。这种情况经常会被测试童鞋当成bug。
其实UIView类属性有个exclusiveTouch属性,表示是否该view响应触摸是排他的。默认的设置是NO,即不排他。如果想让按钮排他响应,只需将按钮的exclusiveTouch设置为YES即可。
实际编程中我一般会有两种方法:
1)、在viewDidLoad方法中对self.view中的subview进行遍历,如果是按钮对象就将它的exclusiveTouch属性设为YES。
for (UIView *subview in self.view.subviews) { if ([subview isKindOfClass:[UIButton class]]) { subview.exclusiveTouch = YES; } }
另外说明:手势识别会忽略exclusiveTouch设置。详见苹果官方例子:SimpleGestureRecognizers。
2)、是新建一个button类,然后在类中,设置:exclusiveTouch = YES;
2、view设置背景图片的方法:colorWithPatternImage将图片img平铺在view上,如果尺寸小就是平铺,如果尺寸大就是填充啦
self.textView.backgroundColor = [UIColor colorWithPatternImage:img];
3、在web页面即将跳转之前,会调用的方法:用于截取用户点击的页面的url。并可以决定是否跳转以及跳转的页面
像网购类的app,打开网页之后,点击某个商品,接着让页面跳转至app上的详情页,可以通过截取链接的字符串,然后判断是否有商品的关键字,然后再进行如下方法里面
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
//获取url:
NSString *str = request.URL.absoluteString;
//判断是否有我们需要的关键字,以及页面跳转的VC是哪个。
//返回Yes代表可以发起网络请求
//返回No代表不可以发起网络请求
//运行JS
// webView stringByEvaluatingJavascriptFromString:(NSString *)
return NO;}
4、列一下官方文档中的注意点:
- 不要将指针强转成整数
- 程序各处使用统一的数据类型
- 对不同类型的整数做运算时一定要注意
- 需要定长变量时,使用如
int32_t, int64_t
这种定长类型
- 使用malloc时,不要写死size
- 使用能同时适配两个架构的格式化字符串
- 注意函数和函数指针(类型转换和可变参数)
- 不要直接访问Objective-C的指针(isa)
- 使用内建的同步原语(Primitives)
- 不要硬编码虚存页大小
5、pch文件:
- 警告:
- clang: error: no such file or directory: '/demo2/控件代碼/13/Recorder/Recorder_Prefix.pch'
- clang: error: no input files
- Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1
- 解決辦法: 在妳的主工程文件 target搜素,pch ,找到Prefix Header 把它後面的值,都刪除,再運行就解決了。