自定义UILabel,接受触摸事件:
#import <UIKit/UIKit.h> @interface myLabel : UILabel @end
#import "myLabel.h"@implementation myLabel
- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; }
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSLog(@"myLabel touch"); }
@end
#import "ViewController.h"@implementation ViewController
- (void)viewDidLoad { [super viewDidLoad]; [self.view setBackgroundColor:[UIColor greenColor]]; myLabel *label = [[myLabel alloc] init]; label.frame = CGRectMake(60, 100, 200, 50); label.text = @"Hello world"; label.backgroundColor = [UIColor blueColor]; label.userInteractionEnabled = YES; [self.view addSubview:label]; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSLog(@"viewController touch"); }
如果在myLabe中加入:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSLog(@"myLabel touch"); [self.nextResponder touchesBegan:touches withEvent:event]; // 接受到事件后继续向上传递事件 }
UILabel在Autolayout中的使用
UILabel在Autolayout中是有些特别的,因为这种可以显示文本的控件会根据自身文字的大小,长度等来确定自己的大小。在使用Autolayout时,UILabel这种控件即使不设置宽度和高度,只设置x和y,也是没有问题的。
比如我们先在有一个label,我只设置了它的x是距离左面16p,y是距离Top Layout Guide 8p,没有设置width和height,那么显示出来是这样:
可以看到,如果不设置宽度和高度,UILabel会根据文字长度和高度来确定大小。
但是当文字长度变长时:
虽然宽度也在改变,但是也带来了一个问题:因为文本太长,使label的宽度超出屏幕,多余的部分则不能显示出来。
我们可以给label增加width的约束,让它距离右边界也有16p的距离,然后看看效果:
可以看到宽度固定了,但是多余的部分又变成了...。
这是因为默认情况下,UILabel只显示一行,而现在我们宽度又确定,所以多余部分用...来表示。我们只需要将UILabel的numberOfLines改为0,label就会根据文本的不同行数,显示对应的行数,并且宽度固定。
但是如果此时减少文字,会发现label的宽度也是固定的:
有的时候我们不希望它是固定的宽度,而是让label的宽度和文字的长度一样,但是最长到距离右边界16p的地方。
解决方法:
将原来的Equal改为Greater Than Or Equal,注意此时两个item的顺序,不同的顺序关系也不同。现在当文本多的时候label就会自动变高,当文本少的时候label就会自动减小。
我一直在查看MapStruct文档,但没有成功。 我正在实现我的域类和我的DTO类之间的映射;使用MapSTRt。在我的域中,我不想对我的字段使用设置器,因为我们知道今天的设置器不好(出于许多原因,但这不是我问题的主题)。 但是当我想将转换为时,我收到了以下消息: 但是,我的类Item有一个业务方法void changeName(String newName),我想在映射器中使用它。 我的映射器的
在自定义arrayAdapter中实现自定义getFilter时遇到问题。实际上,我不知道如何实现它。尝试了各种代码,但仍然没有成功。这是我的自定义阵列适配器。 这是ListTO课程。 这是布局图。 这里的搜索关键字来自“inputSearch”编辑文本。 这是文本更改的侦听器。 谢谢
如果您是经验丰富的ML开发人员,并且预构建的TensorFlow Lite库不能满足您的需求,则可以使用ML Kit 自定义TensorFlow Lite版本。例如,您可能想要添加自定义操作。 先决条件 一个可用的TensorFlow Lite构建环境 检出(checkout)0.1.7的Tensorflow Lite 你可以通过使用git检出正确版本: $ git checkout -b wor
我有一个简单的中间件,它检查用户会话中是否有密钥。 问题是我总是得到“未按请求设置会话存储”错误这是我的路线: 我在app\Http\K中添加了中间件ernel.php变量$middleware 我也试着改变我的路线: 但这不起作用。知道如何确保会话已经启动,或者在调用中间件之前启动它吗?我用的是Laravel 5.3
我想更改加载到WebView中的html字符串的字体,类似于本问题中提到的: 如何在Android中更改Webview的字体? 不同之处在于,我并没有使用旧的方法将字体文件存储在assets文件夹中,而是将它们存储在res/font中,如“Fonts in XML”android字体支持文档中所述: https://developer.android.com/guide/topics/ui/loo
本文向大家介绍在Django中自定义filter并在template中的使用详解,包括了在Django中自定义filter并在template中的使用详解的使用技巧和注意事项,需要的朋友参考一下 Django内置的filter有很多,然而我们由于业务逻辑的特殊要求,有时候仍然会不够用,这个时候就需要我们自定义filter来实现相应的内容。接下来让我们从自定义一个get_range(value)来产
本文向大家介绍javascript中数组的定义及使用实例,包括了javascript中数组的定义及使用实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript中数组的定义及使用方法。分享给大家供大家参考。具体分析如下: 希望本文所述对大家的javascript程序设计有所帮助。
如果您是经验丰富的ML开发人员,并且预设的TensorFlow Lite库不能满足您的需求,则可以使用ML Kit 自定义TensorFlow Lite版本。例如,您可能想要添加自定义操作。 预设条件 一个可用的TensorFlow Lite构建环境 为Android捆绑自定义的TensorFlow Lite 构建Tensorflow Lite AAR: $ bazel build --cxxop