[英]Object C to Swift custom class implementation
我正在使用GTImageDraw
庫,該庫允許在圖像上進行繪制並將其保存。 當我要對其進行相當合理的修改時,我想將其更改為Swift,因為我對Swift語言更加熟悉。 我被困在一開始。
在GTImageDraw
的頭文件中,它包含
@interface UIView (Draw)
- (void)startDrawing;
-(void)stopDrawing;
-(void)resetImage;
-(void)setBrush:(CGFloat) b;
-(void) setColor:(UIColor *) color;
- (UIImage*)imageByCombiningImage:(UIImage*)firstImage withImage:(UIImage*)secondImage;
-(UIImage*) save;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
-(void)selectRubber;
@end
在GTImageDraw
的.m
文件中,它包含
@implementation UIImageView (Draw)
我試圖創建一個draw.swift
文件並添加
class Draw: UIImageView {}
這顯然是不對的,因為我想我需要在類似頭文件的地方聲明UIView
。 也有人抱怨我沒有初始化。 但是,在.m
或.h
文件中,任何地方都沒有init方法。
我對這一切有點陌生。 感謝您的幫助
[問題更新]如何在.m
文件中初始聲明的變量
@implementation UIImageView (Draw)
UIImage *mainImg;
UIImageView *mainImageView;
BOOL _isErasing = NO;
BOOL activate = NO;
CGPoint lastPoint;
CGFloat red = 0.0/255.0;
CGFloat green = 0.0/255.0;
CGFloat blue = 0.0/255.0;
CGFloat brush = 5.0;
CGFloat opacity = 1.0;
BOOL mouseSwiped;
-(void)startDrawing{
}
我無法執行以下操作,因為擴展中不允許聲明變量
extension UIView {
let mainImg: UIImage
let mainImageView: UIImageView
let _isErasing: Bool = false
let activate: Bool = false
let lastPoint: CGPoint
let red: CGFloat = 0.0/255.0
let green: CGFloat = 0.0/255.0
let blue: CGFloat = 0.0/255.0
let brush: CGFloat = 5.0
let opacity: CGFloat = 1.0
let mouseSwiped: Bool
}
再次感謝
在顯示的Objective-C代碼中,您有一個類別,而不是一個類實現。 Swift的等效項是
extension UIView {
func startDrawing() {
// …
}
func stopDrawing() {
// …
}
func resetImage() {
// …
}
func setBrush(b: CGFloat) {
// …
}
func setColor(color: UIColor) {
// …
}
func imageByCombining(firstImage: UIImage, withSecondImage: UIImage) -> UIImage {
}
// etc.
}
然后,您可以這樣稱呼它:
let view = UIView()
view.setColor(UIColor.orangeColor())
view.startDrawing()
view.stopDrawing()
現在,通過以下實現將代碼轉換為swift:
import Foundation
import UIKit
private var _isErasing:Bool = false
private var activate: Bool = false
private var mouseSwiped: Bool = false
private var red: CGFloat = 0.0/255.0
private var green: CGFloat = 0.0/255.0
private var blue: CGFloat = 0.0/255.0
private var brush: CGFloat = 5.0
private var opacity: CGFloat = 1.0
private var mainImg = UIImage()
private var mainImageView = UIImageView()
private var lastPoint = CGPoint()
extension UIImageView {
public func _startDrawing() {
}
不確定為什么接口使用UIView而不是UIImageView。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.