Wenn Sie die Ebeneneigenschaft Ihrer Ansicht blättern (oder einem UIView) Sie leicht eine feste Grenze bekommen ...
#import <QuartzCore/QuartzCore.h>
...
myView.layer.borderWidth = 2;
myView.layer.borderColor = [UIColor blackColor].CGColor;
Sie können auch die Schicht verwenden Echtzeit-Schatten anzuwenden, indem Die layer.shadow*
Eigenschaften, aber die Leistung kann mit dieser Technik langsam sein, so dass ich im Allgemeinen die folgende komplexere, aber performantere Technik bevorzugen. Sie können ein PNG-Bild mit Transparenz in der Mitte und Schatten um die Kante herum erstellen - es müssen 9 verschiedene Bereiche vorhanden sein: 4 für jede Ecke, 4 für jede Kante und ein vollständig transparenter 1x1 Pixelbereich in der Mitte. Wenn Ihr Schatten beispielsweise 6 Pixel in Ihr Bild hineinreicht, wäre Ihr Bild 13x13 mit den 6 Pixel breiten/hohen Rahmen und dem 1x1 Bereich in der Mitte. Dann setzen Sie es als skalierbare Bild mit:
newImage = [image stretchableImageWithLeftCapWidth:6 topCapHeight:6];
UPDATE: Seit iOS 5.0 stretchableImageWithLeftCapWidth:topCapHeight:
veraltet ist, so dass nur diese verwenden, wenn Sie noch unterstützen iOS 4.x Geräte wollen. Wenn Sie iOS unterstützen wollen nur 5.0+ Geräte verwenden Sie stattdessen:
newImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(6, 6, 6, 6)];
Dann legen Sie das Bild auf der übergeordneten Ansicht, so dass es den gesamten Bereich der Scroll-Ansicht in Anspruch nimmt. Wenn Sie möchten, dass die Schatten über Ihre scrollbaren Elemente gehen (sodass Ihre Bildlaufansicht in den/hinter den Rest der Seite zeigt), platzieren Sie eine transparente UIView über dem oberen Bild mit dem Schattenbild, so dass es durch Ihre Bildlaufansicht zeigt dahinter.
genial, das hat den Trick gut für mich :) –