工作中遇到的问题-2

1、exclusiveTouch,互斥性:

一些应用经常会在一个view上放多个按钮,比如登录页面,就会有注册与登录按钮。理论上讲注册和登录按钮是不能同时按下的,但是如果你同时按下这两个按钮,这两个东东都会显示响应高亮状态,其结果就不可预知了。这种情况经常会被测试童鞋当成bug如何让view只响应一个按钮 - 杨叫兽 - 青青子衿 悠悠我心

其实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文件:
  1. 警告:
  2. clang: error: no such file or directory: '/demo2/控件代碼/13/Recorder/Recorder_Prefix.pch'
  3. clang: error: no input files
  4. Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1
  5. 解決辦法: 在妳的主工程文件 target搜素,pch ,找到Prefix Header    把它後面的值,都刪除,再運行就解決了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值