cuốn sách gpt4 ai đã làm

ios - 通过单击按钮重置 iOS 手势

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 20:17:40 29 4
mua khóa gpt4 Nike

Tôi có một ứng dụng cho phép người dùng xoay và phóng to hình ảnh. Tôi nghĩ, không gặp quá nhiều khó khăn, người dùng có thể rơi vào trạng thái phóng to một phần hình ảnh và muốn đặt lại mọi thứ về "trạng thái cơ bản" (tức là thay đổi tỷ lệ tất cả các bản dịch và tính tổng lần lượt về 0 và 1 ) .

Tôi đang dịch:

- (void)panGestureRecognized:(UIPanGestureRecognizer *)recognizer
{
Bản dịch CGPoint = [bản dịch nhận dạngInView:self.view];
nhận dạng.view.center = CGPointMake(recognizer.view.center.x + dịch.x,
nhận dạng.view.center.y + dịch.y);
[bộ nhận dạng setTranslation:CGPointMake(0, 0) inView:self.view];
}

Điều này hoạt động rất tốt và tôi có thể dịch hình ảnh.

Nếu tôi nhấn nút, tôi muốn có thể thay đổi bản dịch về 0,0. Một cách tiếp cận dường như là lưu trữ trình nhận dạng cử chỉ và đặt nó về 0, như:

mPanRecognizer.view.center = CGPointMake(mPanRecognizer.view.center.x,
mPanRecognizer.view.center.y);
[mPanRecognizer setTranslation:CGPointMake(0,0) inView:self.view];

Trong số đó, mPanRecognizer là biến thành viên lưu trữ bộ nhận dạng. Tuy nhiên, làm như vậy sẽ tạo ra thông báo tường trình sau đây mà không có thay đổi nào về hành vi thực tế:

Bỏ qua lệnh gọi tới [UIPanGestureRecognizer setTranslation:inView:] do trình nhận dạng cử chỉ không hoạt động.

Vậy làm cách nào để đặt lại cử chỉ về 0,0 bằng cách nhấn nút?

câu trả lời hay nhất

Điều này có thể được thực hiện mà không cần sử dụng trình nhận dạng cử chỉ. Để đặt tỷ lệ, hãy sử dụng

[self.view setBound:CGRectMake(0,0,width,height)];

其中 widthchiều cao là kích thước của thiết bị của bạn.

Để thiết lập bản dịch, hãy sử dụng

[self.view setCenter:CGPointMake(width/2.0,height/2.0)];

Để dễ dàng đặt chiều rộng và chiều cao, hãy bọc Chế độ xem trong một UIView riêng. Với UIView được neo đúng cách và theo đúng thứ tự z, bạn có thể sửa đổi dòng trên thành

[imageView setBounds:CGRectMake(0,0,imageView.superview.bounds.size.width,imageView.superview.bounds.size.height)];
[imageView setCenter:CGPointMake(imageView.superview.center.x, imageView.superview.center.y)];

Điều này tránh sự cần thiết phải kể lại bất kỳ điểm hoặc con số kỳ diệu nào dành riêng cho một thiết bị cụ thể.

Về ios - Đặt lại iOS bằng cử chỉ bấm nút, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/13633674/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress