Xcode 11 thêm các ràng buộc mới được đặt bằng 0: sử dụng giá trị cài đặt thay vì mặc định / tiêu chuẩn


74

Tôi đã từng sử dụng tính năng tự động thanh toán thêm các ràng buộc mới để thực hiện các ràng buộc đơn giản đối với chế độ xem giám sát / quan hệ như thế này (trong thời gian loooong):

nhập mô tả hình ảnh ở đây

Tuy nhiên, gần đây sau khi cập nhật lên xcode mới nhất (11.3.3 hoặc chỉ 11.3 / 11C29), tôi gặp vấn đề kỳ lạ này: khi tôi đặt hằng số = 0, chúng luôn tạo ra các ràng buộc theo cách không mong muốn như thế này:

nhập mô tả hình ảnh ở đây

Và có vẻ như giá trị mặc định là bằng cách nào đó 20 và làm cho quan điểm của tôi trông rất sai (0 so với 20?)

Nếu tôi sửa nó bằng cách chỉnh sửa các ràng buộc như thế này:

nhập mô tả hình ảnh ở đây

Sau đó, nó sẽ sửa lại (hình ảnh sau khi chỉnh sửa các ràng buộc, trước khi chỉnh sửa, nó hiển thị không đổi = Standard)

Tôi thậm chí không biết làm thế nào để mô tả vấn đề, nhưng làm cách nào để sửa lỗi mới này add new constraintđể sử dụng điểm mong muốn của tôi thay vì tiêu chuẩn / mặc định?

Cập nhật:

Nó dường như chỉ xảy ra khi ràng buộc với giám sát. Không biết cách khắc phục tho.

Cập nhật ngày 01 tháng 01-2020:

Xcode11.4 đã sửa lỗi này.


2
Cùng một vấn đề ở đây. Tôi nghĩ rằng điều này xuất hiện lần đầu tiên khi tôi cập nhật lên bản cập nhật 11.3: Cùng một dự án không có vấn đề này trên một máy khác có cùng phiên bản xcode. Có thể nó liên quan đến cấu hình IDE hoặc có thể đó là lỗi của chính IDE.
Dmitrij Rogov

1
Vấn đề tương tự ở đây. Sử dụng Xcode 11.3 (11C29).
dùng525504

1
Vấn đề tương tự Phiên bản 11.3 (11C29)
user832

1
@DmitrijRogov Đôi khi tôi đã nhớ lại (xcode 8,9 hoặc 10), có một cài đặt ở đâu đó giúp chúng tôi xác định standardgiá trị (vì vậy chúng tôi có thể đặt 10 hoặc 0 thay vì default = 8) nhưng tôi quên mất nó hiện đang ở đâu. Hoặc có thể họ đã loại bỏ tính năng này?
Eddie

5
Điều này làm tôi phát điên
Buyin Brian

Câu trả lời:


37

Có vẻ như là một lỗi (đừng quên nộp hồ sơ với Apple). Đây là một cách giải quyết đơn giản:

Khi bạn điền số vào "popover", thay vì gõ 0, hãy gõ 0.01. Điều này sẽ ngăn số thay đổi bí ẩn thành "Tiêu chuẩn". Được rồi, vì vậy 0.01không giống như 0nhưng nó đủ gần để bạn không thể nhận ra sự khác biệt và ít nhất bạn không phải quay lại và thay đổi nó sau.

EDIT Apple nói rằng lỗi này sẽ được sửa trong Xcode 11.4:

Đã sửa lỗi ngăn không cho nhập 0 liên tục trong trình chỉnh sửa cửa sổ bật lên ràng buộc. (54076090)


1
tốt đẹp xung quanh, cảm ơn!
Eddie

1
Tuyệt quá! Vấn đề này có thể gây phiền nhiễu gì ..
Joaquin Pereira

Nó hoạt động tốt khi tôi sử dụng 0,01 thay cho 0
Teja

Nhưng đặt nó về 0 lần thứ hai hoạt động. Tại sao phải bận tâm với 0,01? Dù sao nó cũng khá khó chịu. Điều tốt là đó là một lỗi và không phải là "tính năng".
Vlad Rusu

11

Trong khi giải pháp @matt đang hoạt động, tôi chỉ muốn thêm vào rằng bạn có thể đặt nó thành 0,01 và sau đó thay đổi thành 0, nó sẽ không thay đổi lại giá trị tiêu chuẩn. Lưu ý: Xcode 11.3


Đối với tôi khi tôi đổi nó về 0 thì nó lại đổi thành "tiêu chuẩn". Xcode 11.3.1.
John Scalo

10

Kể từ Xcode 11.3.1:

Giải pháp gọn gàng và nhanh nhất tôi tìm thấy như sau:

Chỉ cần nhập -0vào trường ràng buộc. Xcode xuất hiện để loại bỏ tiêu cực và nó hoạt động chính xác, tốt hơn so với việc đọc 0.01mọi thứ.

Bạn có thể chèn tất cả các ràng buộc cùng một lúc, mà không phải thực hiện một lần hoặc chỉnh sửa sau.

Xcode hiển thị các giá trị như thế này

Nó có vẻ như hành vi thực sự ngu ngốc. Có một lý do mà Apple có thể đã khiến nó cố tình làm điều này ...?

Chỉnh sửa: Điều này dường như không hoạt động mọi lúc , điều này gây bực bội. Tôi vừa có một chương trình UIImageView 0 đến Superview, nhưng vẫn trực quan ở giá trị mặc định (20). Điều này thực sự có vẻ như là một lỗi với IB vì hành vi này là hoàn toàn phi logic.


9

Hành vi này dường như được sửa trên Xcode 11.4: ghi chú phát hành

Đã sửa lỗi ngăn không cho nhập 0 liên tục trong trình chỉnh sửa cửa sổ bật lên ràng buộc. (54076090)


Câu trả lời gốc:

Tôi cũng chỉ thấy hành vi này, tôi đã thử thêm các ràng buộc 1 và 1 và Xcode thực sự tôn trọng giá trị 0.

Theo quan điểm của tôi.


Vâng, tôi chỉ nhận thấy rằng trong các ghi chú phát hành quá, cũng được thực hiện.
matt

5

Tôi biết rằng đây không phải là giải pháp, nhưng đối với giải pháp tạm thời để ngăn bạn vượt qua mọi ràng buộc, tôi chỉ phát hiện ra rằng bạn có hành vi mong muốn nếu bạn chèn '-0' thay vì '0', nhưng bạn phải chèn một ràng buộc mỗi lần.


đây thực sự là một lựa chọn tốt, thêm '-0' khi bạn tạo các ràng buộc sẽ là '0' trong thanh tra, không cần phải đến đó và thay đổi chúng
busta117

1

Thực tế không có cách nào để giải quyết vấn đề này vào lúc này

nhưng giải pháp tạm thời tốt nhất là thêm các ràng buộc với số không từng cái một.


0

bỏ qua điều đó khi chuẩn.

sau khi thêm nó, nhấp vào constrain (đường màu xanh) và trình kiểm tra để giới hạn thuộc tính và đặt nó thành 0.

công việc đó cho tôi


0

Vẫn gặp lỗi này (Xcode 11.3.1). Đã sửa nó bằng cách thêm các ràng buộc là "tiêu chuẩn", sau đó nhấp vào các dòng ràng buộc màu xanh và đặt "hằng số" dưới thanh tra kích thước thành 0.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.