gpt4 book ai didi

iOS - 自定义确认 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:03 25 4
gpt4 key购买 nike

我正在致力于在用户按下按钮并完成操作后创建自定义控件。我正在尝试在添加专辑时复制 Apple Music 应用程序的行为,它会在中心显示带有复选标记的确认 View ,如下所示。是否有任何类似的 cocoa 控件可供使用?

enter image description here

最佳答案

(迅速)创建单例类

自定义 View 类:UIView {

class var sharedView : CustomView {
struct Static {
static var instance : CustomView?
static var token : dispatch_once_t = 0
}
dispatch_once(&Static.token) {
Static.instance = CustomView()
}
return Static.instance!
}

override init(frame: CGRect) {
super.init(frame: frame)
}

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)

}

func showInView(view:UIWindow) {

var image = UIImage(named:"SomeImage")

self.frame = view.frame
var originX = view.center.x
var originY = view.center.y

let centerView = UIImageView()
centerView.center = CGPointMake(originX, originY)

centerView.contentMode = UIViewContentMode.Center
centerView.image = image
centerView.alpha = 0
self.addSubview(centerView)
view.addSubview(self)

UIView.animateWithDuration(1, animations: { () -> Void in
centerView.alpha = 1

}) { (_) -> Void in
UIView.animateWithDuration(1, animations: { () -> Void in
centerView.frame.size = CGSizeMake(0,0)
centerView.alpha = 0
}) { (_) -> Void in
self.hide()

}
}

}
func hide()
{
if self.superview != nil
{
self.removeFromSuperview()
}
}

在您的 viewController 中,您只需调用方法 CustomView.sharedView.showInView(view:UIApplication.sharedApplication.keyWindow())

Objective c .h

#import <UIKit/UIKit.h>

@interface CustomView : UIView

+ (instancetype)sharedInstance;
-(void)showInView:(UIWindow*)view;

@end

objective c .m

#import "CustomView.h"

@implementation CustomView

+ (instancetype)sharedInstance
{
static CustomView *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[CustomView alloc] init];
});
return sharedInstance;
}

- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {

}
return self;
}

- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {

}
return self;
}


-(void)showInView:(UIWindow*)view {

UIImage *image = [UIImage imageNamed:@"img.png"];
self.frame = view.frame;
CGFloat originX = view.center.x;
CGFloat originY = view.center.y;

UIImageView *centerView = [UIImageView new];
centerView.center = CGPointMake(originX, originY);
centerView.contentMode = UIViewContentModeCenter;
centerView.image = image;
centerView.alpha = 0;
[self addSubview:centerView];
[view addSubview:self];

[UIView animateWithDuration:1 animations:^{
centerView.alpha = 1;

} completion:^(BOOL finished) {

[UIView animateWithDuration:1 animations:^{
centerView.frame = CGRectMake(originX, originY, 0, 0);
centerView.alpha = 0;

} completion:^(BOOL finished) {

[self hideView];

}];

}];
}

-(void)hideView {
if(self.superview) {
[self removeFromSuperview];
}
}


@end

在你的文件中导入 CustomView.h

[[CustomView sharedInstance] showInView:[[UIApplication sharedApplication]keyWindow]];

关于iOS - 自定义确认 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31486125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com