ios - 如何制作图像可调整大小的裁剪框

标签 ios objective-c cocoa-touch

我正在尝试找到一种方法在用户上传的图片之上创建一个框,以便用户可以裁剪图片以适应 X 裁剪纵横比(该框将具有 X 最小宽度和高度以及定义的纵横比框)。

我能够找到可以使用裁剪框但没有长宽比功能的存储库。因此我想知道是否有人可以指点我一个教程,以便我可以学习如何做到这一点,或者一个可以实现我想要实现的目标的 repo 协议(protocol),以便我可以看到另一个人是如何实现的。

最佳答案

这里有几个挑战,一个是呈现和拖动裁剪控件的 UI,一个更简单的是约束裁剪控件的数学。这是对后者的提示:

@interface CropBox : NSObject

@property (assign, nonatomic) CGRect box;
@property (assign, nonatomic)  CGFloat aspect;  // set this to 16.0/9.0=1.77 e.g. to get 16:9

- (void)setOrigin:(CGPoint)origin;
- (void)setWidth:(CGFloat)width;
- (void)setHeight:(CGFloat)height;

@end

@implementation CropBox

- (void)setOrigin:(CGPoint)origin {

    self.box = CGRectMake(origin.x, origin.y, self.box.width, self.box.height);
}

- (void)setWidth:(CGFloat)width {

    CGFloat height = width / self.aspect;
    self.box = CGRectMake(self.box.origin.x, self.box.origin.y, width, height);
}

- (void)setHeight:(CGFloat)height {

    CGFloat width = height * self.aspect;
    self.box = CGRectMake(self.box.origin.x, self.box.origin.y, width, height);
}

@end

关于ios - 如何制作图像可调整大小的裁剪框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17135936/

相关文章:

iOS 自动布局 UIScrollView 右侧多余空间

ios - 当后台时间到期时,为什么不是所有后台线程都被挂起?

ios - 是否有可能知道崩溃的确切时间?

swift - 在另一个项目中满足框架的依赖关系

ios - 在 CocoaTouchFramework 中使用 Swift 的 CocoaPods 0.36.0

iOS URL Scheme - 在我的应用程序中加载自定义 UIView

iphone - Xcode - 警告问题

ios - 将 NSData 字节顺序更改为小端

ios - dataWithContentsOfURL 通过蜂窝返回 NSCocoaErrorDomain Code=256,但不是 wifi

ios - AFNetworking 无法编译