Dar*_*ust 36

UIView用于iOS(Cocoa Touch),Mac上的NSView(Cocoa).虽然它们有许多共同之处,但它们之间存在很多差异.例如,UIView总是由CoreAnimation层支持,而NSView仅在您明确调用时setWantsLayer:YES(并且可选地在此之前提供您自己的层).有关更多详细信息,请参阅UIViewNSView的类引用.

NSView是恕我直言的更复杂,由于其遗产而具有更多的功能(NeXTStep的第一个版本于1988年发布,因此NSView的原始设计最迟于1988年创建).某些功能在iOS上没有意义(如拖放和工具提示).UIView是一个新的开始(最迟在2006年)并且避免了NSView的一些设计问题(例如,如前所述,它总是使用CoreAnimation支持而不是NSView支持的三种模式).它具有不同的功能集,因为它在不同的环境中使用(请参阅多点触控支持;在NSView中没有意义).


Ron*_*vis 27

另一个很大的区别是坐标系的原点是.

在NSView 0,0的左下方,正值Y上升.

在UIView 0,0位于左上方,Y的正值下降.

  • 您还可以在NSView中覆盖Flipped,使其行为类似于UIView (2认同)