Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift/Obj-C中创建类似触觉的按钮_Ios_Objective C_Swift - Fatal编程技术网

Ios 在Swift/Obj-C中创建类似触觉的按钮

Ios 在Swift/Obj-C中创建类似触觉的按钮,ios,objective-c,swift,Ios,Objective C,Swift,我一直在玩弄一个按钮的想法,当按下这个按钮时,它会展开以显示其他按钮(比如Android中的FAB)。在不释放的情况下,向下滑动手指会突出显示其他按钮,类似于触觉触摸的行为 这是我用戏剧创作的一个原始模型: 还应提供一个选项,在每个按钮旁边水平放置一个标签,按钮顺序应如图所示(所选按钮位于顶部,而不是其通常位置) 我已经为每个按钮设置了一个类(见下文),但不知道如何实现这种布局/行为 class id按钮:ui按钮{ init(图像:UIImage?=nil){ super.init(帧:CGR

我一直在玩弄一个按钮的想法,当按下这个按钮时,它会展开以显示其他按钮(比如Android中的FAB)。在不释放的情况下,向下滑动手指会突出显示其他按钮,类似于触觉触摸的行为

这是我用戏剧创作的一个原始模型:

还应提供一个选项,在每个按钮旁边水平放置一个标签,按钮顺序应如图所示(所选按钮位于顶部,而不是其通常位置)

我已经为每个按钮设置了一个类(见下文),但不知道如何实现这种布局/行为

class id按钮:ui按钮{
init(图像:UIImage?=nil){
super.init(帧:CGRect(x:0,y:0,宽度:30,高度:30))
如果让image=image{
setImage(图像,用于:。正常)
}
backgroundColor=.secondarySystemFill
层角半径=15
}
必需初始化?(编码器:NSCoder){
super.init(编码器:编码器)
}
}
类IDUBageButton:iDUButton{
var badgeLabel=UILabel()
var badgeCount=0
重写初始化(映像:UIImage?=nil){
super.init(image:image)
设置()
}
必需初始化?(编码器:NSCoder){
super.init(编码器:编码器)
设置()
}
专用函数设置(){
badgeLabel.textColor=.white
badgeLabel.backgroundColor=.systemRed
badgeLabel.textAlignment=.center
badgeLabel.font=.preferredFont(forTextStyle:.caption1)
badgeLabel.alpha=0
UpdateEdge()
添加子视图(标签)
}
覆盖func布局子视图(){
super.layoutSubviews()
badgeLabel.sizeToFit()
让高度=最大值(18,badgeLabel.frame.height+5.0)
让宽度=最大值(高度,badgeLabel.frame.width+10.0)
badgeLabel.frame=CGRect(x:frame.width-5,y:-badgeLabel.frame.height/2,宽度:宽度,高度:高度);
badgeLabel.layer.cornerRadius=badgeLabel.frame.height/2;
badgeLabel.layer.masksToBounds=true;
}
func setBadgeCount(徽章计数:Int){
self.badgeCount=badgeCount;
self.updateEdge()
}
func updateEdge(){
如果badgeCount!=0{
badgeLabel.text=“\(badgeCount)”
}
UIView.animate(持续时间:0.25,动画:{
self.badgeLabel.alpha=self.badgeCount==0?0:1
})
布局子视图()
}
}
如果有人能帮助实现这个布局,我将非常感激!提前谢谢

PS:我正在用Swift开发UI,但完成后将转换为Objective-C。如果您感兴趣,用例是调整左上角的按钮以提供不同标签的选择